diff --git a/drivers/staging/comedi/comedi.h b/drivers/staging/comedi/comedi.h
index 8ed6f96..fe7f1c4 100644
--- a/drivers/staging/comedi/comedi.h
+++ b/drivers/staging/comedi/comedi.h
@@ -291,7 +291,7 @@
 /* ioctls */
 
 #define CIO 'd'
-#define COMEDI_DEVCONFIG _IOW(CIO, 0, comedi_devconfig)
+#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
 #define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
 #define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
 #define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
@@ -310,7 +310,6 @@
 
 /* structures */
 
-typedef struct comedi_devconfig_struct comedi_devconfig;
 typedef struct comedi_rangeinfo_struct comedi_rangeinfo;
 typedef struct comedi_krange_struct comedi_krange;
 typedef struct comedi_bufconfig_struct comedi_bufconfig;
@@ -415,7 +414,7 @@
 	int unused[30];
 };
 
-struct comedi_devconfig_struct {
+struct comedi_devconfig {
 	char board_name[COMEDI_NAMELEN];
 	int options[COMEDI_NDEVCONFOPTS];
 };
diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
index 2d99a4e..0e9ad62 100644
--- a/drivers/staging/comedi/comedi_fops.c
+++ b/drivers/staging/comedi/comedi_fops.c
@@ -69,7 +69,7 @@
 static struct comedi_device_file_info
     *comedi_file_info_table[COMEDI_NUM_MINORS];
 
-static int do_devconfig_ioctl(struct comedi_device *dev, comedi_devconfig *arg);
+static int do_devconfig_ioctl(struct comedi_device *dev, struct comedi_devconfig *arg);
 static int do_bufconfig_ioctl(struct comedi_device *dev, void *arg);
 static int do_devinfo_ioctl(struct comedi_device *dev, struct comedi_devinfo *arg,
 			    struct file *file);
@@ -192,9 +192,9 @@
 	writes:
 		none
 */
-static int do_devconfig_ioctl(struct comedi_device *dev, comedi_devconfig *arg)
+static int do_devconfig_ioctl(struct comedi_device *dev, struct comedi_devconfig *arg)
 {
-	comedi_devconfig it;
+	struct comedi_devconfig it;
 	int ret;
 	unsigned char *aux_data = NULL;
 	int aux_len;
@@ -213,7 +213,7 @@
 		return 0;
 	}
 
-	if (copy_from_user(&it, arg, sizeof(comedi_devconfig)))
+	if (copy_from_user(&it, arg, sizeof(struct comedi_devconfig)))
 		return -EFAULT;
 
 	it.board_name[COMEDI_NAMELEN - 1] = 0;
diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h
index 36dd822..e6a3005 100644
--- a/drivers/staging/comedi/comedidev.h
+++ b/drivers/staging/comedi/comedidev.h
@@ -239,7 +239,7 @@
 
 	const char *driver_name;
 	struct module *module;
-	int (*attach) (struct comedi_device *, comedi_devconfig *);
+	int (*attach) (struct comedi_device *, struct comedi_devconfig *);
 	int (*detach) (struct comedi_device *);
 
 	/* number of elements in board_name and board_id arrays */
@@ -337,7 +337,7 @@
 }
 
 void comedi_device_detach(struct comedi_device *dev);
-int comedi_device_attach(struct comedi_device *dev, comedi_devconfig *it);
+int comedi_device_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 int comedi_driver_register(struct comedi_driver *);
 int comedi_driver_unregister(struct comedi_driver *);
 
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index 9728c74..3e397d0 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -113,7 +113,7 @@
 	__comedi_device_detach(dev);
 }
 
-int comedi_device_attach(struct comedi_device *dev, comedi_devconfig *it)
+int comedi_device_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct comedi_driver *driv;
 	int ret;
@@ -791,7 +791,7 @@
 
 int comedi_auto_config(struct device *hardware_device, const char *board_name, const int *options, unsigned num_options)
 {
-	comedi_devconfig it;
+	struct comedi_devconfig it;
 	int minor;
 	struct comedi_device_file_info *dev_file_info;
 	int retval;
diff --git a/drivers/staging/comedi/drivers/8255.c b/drivers/staging/comedi/drivers/8255.c
index ec5f916..0369c7c 100644
--- a/drivers/staging/comedi/drivers/8255.c
+++ b/drivers/staging/comedi/drivers/8255.c
@@ -105,7 +105,7 @@
 #define CALLBACK_FUNC	(((struct subdev_8255_struct *)s->private)->cb_func)
 #define subdevpriv	((struct subdev_8255_struct *)s->private)
 
-static int dev_8255_attach(struct comedi_device *dev, comedi_devconfig * it);
+static int dev_8255_attach(struct comedi_device *dev, struct comedi_devconfig * it);
 static int dev_8255_detach(struct comedi_device *dev);
 static struct comedi_driver driver_8255 = {
       driver_name:"8255",
@@ -374,7 +374,7 @@
 
  */
 
-static int dev_8255_attach(struct comedi_device *dev, comedi_devconfig * it)
+static int dev_8255_attach(struct comedi_device *dev, struct comedi_devconfig * it)
 {
 	int ret;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/acl7225b.c b/drivers/staging/comedi/drivers/acl7225b.c
index 3e257cd..7834930 100644
--- a/drivers/staging/comedi/drivers/acl7225b.c
+++ b/drivers/staging/comedi/drivers/acl7225b.c
@@ -22,7 +22,7 @@
 #define ACL7225_DI_LO  2	/* Digital input low byte (DI0-DI7) */
 #define ACL7225_DI_HI  3	/* Digital input high byte (DI8-DI15) */
 
-static int acl7225b_attach(struct comedi_device *dev, comedi_devconfig * it);
+static int acl7225b_attach(struct comedi_device *dev, struct comedi_devconfig * it);
 static int acl7225b_detach(struct comedi_device *dev);
 
 typedef struct {
@@ -83,7 +83,7 @@
 	return 2;
 }
 
-static int acl7225b_attach(struct comedi_device *dev, comedi_devconfig * it)
+static int acl7225b_attach(struct comedi_device *dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int iobase, iorange;
diff --git a/drivers/staging/comedi/drivers/addi-data/addi_common.c b/drivers/staging/comedi/drivers/addi-data/addi_common.c
index adb5dea..618c69b 100644
--- a/drivers/staging/comedi/drivers/addi-data/addi_common.c
+++ b/drivers/staging/comedi/drivers/addi-data/addi_common.c
@@ -2542,7 +2542,7 @@
 /*
 +----------------------------------------------------------------------------+
 | Function name     :static int i_ADDI_Attach(struct comedi_device *dev,            |
-|										comedi_devconfig *it)        |
+|										struct comedi_devconfig *it)        |
 |                                        									 |
 +----------------------------------------------------------------------------+
 | Task              :Detects the card.                                       |
@@ -2551,7 +2551,7 @@
 |			 allocation of data structures for the driver.	         |
 +----------------------------------------------------------------------------+
 | Input Parameters  :struct comedi_device *dev										 |
-|                    comedi_devconfig *it									 |
+|                    struct comedi_devconfig *it									 |
 |                                                 					         |
 +----------------------------------------------------------------------------+
 | Return Value      :  0            					                     |
@@ -2559,7 +2559,7 @@
 +----------------------------------------------------------------------------+
 */
 
-static int i_ADDI_Attach(struct comedi_device * dev, comedi_devconfig * it)
+static int i_ADDI_Attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret, pages, i, n_subdevices;
diff --git a/drivers/staging/comedi/drivers/addi-data/addi_common.h b/drivers/staging/comedi/drivers/addi-data/addi_common.h
index 2b01577..b3ad58e 100644
--- a/drivers/staging/comedi/drivers/addi-data/addi_common.h
+++ b/drivers/staging/comedi/drivers/addi-data/addi_common.h
@@ -456,7 +456,7 @@
 static unsigned short pci_list_builded;	/* set to 1 when list of card is known */
 
 /* Function declarations */
-static int i_ADDI_Attach(struct comedi_device *dev, comedi_devconfig *it);
+static int i_ADDI_Attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int i_ADDI_Detach(struct comedi_device *dev);
 static int i_ADDI_Reset(struct comedi_device *dev);
 
diff --git a/drivers/staging/comedi/drivers/adl_pci6208.c b/drivers/staging/comedi/drivers/adl_pci6208.c
index cb00731..fa290ba 100644
--- a/drivers/staging/comedi/drivers/adl_pci6208.c
+++ b/drivers/staging/comedi/drivers/adl_pci6208.c
@@ -106,7 +106,7 @@
 
 #define devpriv ((pci6208_private *)dev->private)
 
-static int pci6208_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci6208_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci6208_detach(struct comedi_device * dev);
 
 #define pci6208_board_nbr \
@@ -142,7 +142,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pci6208_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci6208_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int retval;
diff --git a/drivers/staging/comedi/drivers/adl_pci7296.c b/drivers/staging/comedi/drivers/adl_pci7296.c
index 21b8ba8..7fe4ce1 100644
--- a/drivers/staging/comedi/drivers/adl_pci7296.c
+++ b/drivers/staging/comedi/drivers/adl_pci7296.c
@@ -63,7 +63,7 @@
 
 #define devpriv ((adl_pci7296_private *)dev->private)
 
-static int adl_pci7296_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int adl_pci7296_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int adl_pci7296_detach(struct comedi_device * dev);
 static struct comedi_driver driver_adl_pci7296 = {
       driver_name:"adl_pci7296",
@@ -72,7 +72,7 @@
       detach:adl_pci7296_detach,
 };
 
-static int adl_pci7296_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int adl_pci7296_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/adl_pci7432.c b/drivers/staging/comedi/drivers/adl_pci7432.c
index 6759cb3..8fdea81 100644
--- a/drivers/staging/comedi/drivers/adl_pci7432.c
+++ b/drivers/staging/comedi/drivers/adl_pci7432.c
@@ -58,7 +58,7 @@
 
 #define devpriv ((adl_pci7432_private *)dev->private)
 
-static int adl_pci7432_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int adl_pci7432_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int adl_pci7432_detach(struct comedi_device * dev);
 static struct comedi_driver driver_adl_pci7432 = {
       driver_name:"adl_pci7432",
@@ -77,7 +77,7 @@
 
 /*            */
 
-static int adl_pci7432_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int adl_pci7432_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/adl_pci8164.c b/drivers/staging/comedi/drivers/adl_pci8164.c
index 0c93efc..c401e11 100644
--- a/drivers/staging/comedi/drivers/adl_pci8164.c
+++ b/drivers/staging/comedi/drivers/adl_pci8164.c
@@ -70,7 +70,7 @@
 
 #define devpriv ((adl_pci8164_private *)dev->private)
 
-static int adl_pci8164_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int adl_pci8164_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int adl_pci8164_detach(struct comedi_device * dev);
 static struct comedi_driver driver_adl_pci8164 = {
       driver_name:"adl_pci8164",
@@ -103,7 +103,7 @@
 static int adl_pci8164_insn_write_buf1(struct comedi_device * dev,
 	struct comedi_subdevice * s, struct comedi_insn * insn, unsigned int * data);
 
-static int adl_pci8164_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int adl_pci8164_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c
index f6ec537..cce2c83 100644
--- a/drivers/staging/comedi/drivers/adl_pci9111.c
+++ b/drivers/staging/comedi/drivers/adl_pci9111.c
@@ -265,7 +265,7 @@
 // Function prototypes
 //
 
-static int pci9111_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci9111_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci9111_detach(struct comedi_device * dev);
 static void pci9111_ai_munge(struct comedi_device * dev, struct comedi_subdevice * s,
 	void *data, unsigned int num_bytes, unsigned int start_chan_index);
@@ -1246,7 +1246,7 @@
 //      - Declare device driver capability
 //
 
-static int pci9111_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci9111_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *subdevice;
 	unsigned long io_base, io_range, lcr_io_base, lcr_io_range;
diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c
index 406eab7..131498a 100644
--- a/drivers/staging/comedi/drivers/adl_pci9118.c
+++ b/drivers/staging/comedi/drivers/adl_pci9118.c
@@ -178,7 +178,7 @@
 
 #define PCI9118_BIPOLAR_RANGES	4	/* used for test on mixture of BIP/UNI ranges */
 
-static int pci9118_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci9118_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci9118_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -1835,7 +1835,7 @@
 /*
 ==============================================================================
 */
-static int pci9118_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci9118_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret, pages, i;
diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c
index 07eea09..d112a64 100644
--- a/drivers/staging/comedi/drivers/adq12b.c
+++ b/drivers/staging/comedi/drivers/adq12b.c
@@ -162,7 +162,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int adq12b_attach(struct comedi_device *dev,comedi_devconfig *it);
+static int adq12b_attach(struct comedi_device *dev,struct comedi_devconfig *it);
 static int adq12b_detach(struct comedi_device *dev);
 static struct comedi_driver driver_adq12b={
         driver_name:    "adq12b",
@@ -184,7 +184,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int adq12b_attach(struct comedi_device *dev,comedi_devconfig *it)
+static int adq12b_attach(struct comedi_device *dev,struct comedi_devconfig *it)
 {
         struct comedi_subdevice *s;
         unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c
index 64aec32..934468b 100644
--- a/drivers/staging/comedi/drivers/adv_pci1710.c
+++ b/drivers/staging/comedi/drivers/adv_pci1710.c
@@ -182,7 +182,7 @@
 	}
 };
 
-static int pci1710_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci1710_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci1710_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -1316,7 +1316,7 @@
 /*
 ==============================================================================
 */
-static int pci1710_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci1710_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret, subdev, n_subdevices;
diff --git a/drivers/staging/comedi/drivers/adv_pci1723.c b/drivers/staging/comedi/drivers/adv_pci1723.c
index 002144a..f6492fa 100644
--- a/drivers/staging/comedi/drivers/adv_pci1723.c
+++ b/drivers/staging/comedi/drivers/adv_pci1723.c
@@ -143,7 +143,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pci1723_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci1723_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci1723_detach(struct comedi_device * dev);
 
 #define n_boardtypes (sizeof(boardtypes)/sizeof(boardtype))
@@ -294,7 +294,7 @@
  * Attach is called by the Comedi core to configure the driver
  * for a pci1723 board.
  */
-static int pci1723_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci1723_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret, subdev, n_subdevices;
diff --git a/drivers/staging/comedi/drivers/adv_pci_dio.c b/drivers/staging/comedi/drivers/adv_pci_dio.c
index 7ed3031..8f920db 100644
--- a/drivers/staging/comedi/drivers/adv_pci_dio.c
+++ b/drivers/staging/comedi/drivers/adv_pci_dio.c
@@ -183,7 +183,7 @@
 
 #define OMBCMD_RETRY	0x03	/* 3 times try request before error */
 
-static int pci_dio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci_dio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci_dio_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -750,7 +750,7 @@
 /*
 ==============================================================================
 */
-static int pci1760_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci1760_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int subdev = 0;
@@ -857,7 +857,7 @@
 /*
 ==============================================================================
 */
-static int CheckAndAllocCard(struct comedi_device * dev, comedi_devconfig * it,
+static int CheckAndAllocCard(struct comedi_device * dev, struct comedi_devconfig * it,
 	struct pci_dev *pcidev)
 {
 	pci_dio_private *pr, *prev;
@@ -883,7 +883,7 @@
 /*
 ==============================================================================
 */
-static int pci_dio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci_dio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret, subdev, n_subdevices, i, j;
diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c
index 10fd18a..c3e8f99 100644
--- a/drivers/staging/comedi/drivers/aio_aio12_8.c
+++ b/drivers/staging/comedi/drivers/aio_aio12_8.c
@@ -161,7 +161,7 @@
 		}
 };
 
-static int aio_aio12_8_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int aio_aio12_8_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int iobase;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/aio_iiro_16.c b/drivers/staging/comedi/drivers/aio_iiro_16.c
index a739bfa..f6979eb 100644
--- a/drivers/staging/comedi/drivers/aio_iiro_16.c
+++ b/drivers/staging/comedi/drivers/aio_iiro_16.c
@@ -67,7 +67,7 @@
 
 #define	devpriv	((aio_iiro_16_private *) dev->private)
 
-static int aio_iiro_16_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int aio_iiro_16_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 
 static int aio_iiro_16_detach(struct comedi_device * dev);
 
@@ -87,7 +87,7 @@
 static int aio_iiro_16_dio_insn_bits_write(struct comedi_device * dev,
 	struct comedi_subdevice * s, struct comedi_insn * insn, unsigned int * data);
 
-static int aio_iiro_16_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int aio_iiro_16_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int iobase;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/amplc_dio200.c b/drivers/staging/comedi/drivers/amplc_dio200.c
index 88c1275..f5f20ed 100644
--- a/drivers/staging/comedi/drivers/amplc_dio200.c
+++ b/drivers/staging/comedi/drivers/amplc_dio200.c
@@ -473,7 +473,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int dio200_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dio200_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dio200_detach(struct comedi_device * dev);
 static struct comedi_driver driver_amplc_dio200 = {
       driver_name:DIO200_DRIVER_NAME,
@@ -1262,7 +1262,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int dio200_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dio200_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = 0;
diff --git a/drivers/staging/comedi/drivers/amplc_pc236.c b/drivers/staging/comedi/drivers/amplc_pc236.c
index b9c8835..ed25348 100644
--- a/drivers/staging/comedi/drivers/amplc_pc236.c
+++ b/drivers/staging/comedi/drivers/amplc_pc236.c
@@ -165,7 +165,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pc236_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pc236_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pc236_detach(struct comedi_device * dev);
 static struct comedi_driver driver_amplc_pc236 = {
       driver_name:PC236_DRIVER_NAME,
@@ -264,7 +264,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pc236_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pc236_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = 0;
diff --git a/drivers/staging/comedi/drivers/amplc_pc263.c b/drivers/staging/comedi/drivers/amplc_pc263.c
index d7c33e1..99db1a9 100644
--- a/drivers/staging/comedi/drivers/amplc_pc263.c
+++ b/drivers/staging/comedi/drivers/amplc_pc263.c
@@ -132,7 +132,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pc263_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pc263_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pc263_detach(struct comedi_device * dev);
 static struct comedi_driver driver_amplc_pc263 = {
       driver_name:PC263_DRIVER_NAME,
@@ -219,7 +219,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pc263_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pc263_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = 0;
diff --git a/drivers/staging/comedi/drivers/amplc_pci224.c b/drivers/staging/comedi/drivers/amplc_pci224.c
index ec60574..f0beaa6 100644
--- a/drivers/staging/comedi/drivers/amplc_pci224.c
+++ b/drivers/staging/comedi/drivers/amplc_pci224.c
@@ -426,7 +426,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pci224_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci224_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci224_detach(struct comedi_device * dev);
 static struct comedi_driver driver_amplc_pci224 = {
       driver_name:DRIVER_NAME,
@@ -1323,7 +1323,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pci224_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci224_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	struct pci_dev *pci_dev;
diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c b/drivers/staging/comedi/drivers/amplc_pci230.c
index 432f05b..a534763 100644
--- a/drivers/staging/comedi/drivers/amplc_pci230.c
+++ b/drivers/staging/comedi/drivers/amplc_pci230.c
@@ -601,7 +601,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pci230_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci230_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci230_detach(struct comedi_device * dev);
 static struct comedi_driver driver_amplc_pci230 = {
       driver_name:"amplc_pci230",
@@ -702,7 +702,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pci230_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci230_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase1, iobase2;
diff --git a/drivers/staging/comedi/drivers/c6xdigio.c b/drivers/staging/comedi/drivers/c6xdigio.c
index 8b10ff9..2efffb1 100644
--- a/drivers/staging/comedi/drivers/c6xdigio.c
+++ b/drivers/staging/comedi/drivers/c6xdigio.c
@@ -97,7 +97,7 @@
 
 #define C6XDIGIO_TIME_OUT 20
 
-static int c6xdigio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int c6xdigio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int c6xdigio_detach(struct comedi_device * dev);
 struct comedi_driver driver_c6xdigio = {
       driver_name:"c6xdigio",
@@ -428,7 +428,7 @@
 	.id_table = c6xdigio_pnp_tbl,
 };
 
-static int c6xdigio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int c6xdigio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int result = 0;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c
index df77102..487ae3b 100644
--- a/drivers/staging/comedi/drivers/cb_das16_cs.c
+++ b/drivers/staging/comedi/drivers/cb_das16_cs.c
@@ -89,7 +89,7 @@
 } das16cs_private;
 #define devpriv ((das16cs_private *)dev->private)
 
-static int das16cs_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das16cs_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int das16cs_detach(struct comedi_device * dev);
 static struct comedi_driver driver_das16cs = {
       driver_name:"cb_das16_cs",
@@ -165,7 +165,7 @@
 	return NULL;
 }
 
-static int das16cs_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das16cs_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pcmcia_device *link;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c
index f2d09e3..b0366e8 100644
--- a/drivers/staging/comedi/drivers/cb_pcidas.c
+++ b/drivers/staging/comedi/drivers/cb_pcidas.c
@@ -440,7 +440,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int cb_pcidas_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int cb_pcidas_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int cb_pcidas_detach(struct comedi_device * dev);
 static struct comedi_driver driver_cb_pcidas = {
       driver_name:"cb_pcidas",
@@ -508,7 +508,7 @@
  * Attach is called by the Comedi core to configure the driver
  * for a particular board.
  */
-static int cb_pcidas_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int cb_pcidas_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	struct pci_dev *pcidev;
diff --git a/drivers/staging/comedi/drivers/cb_pcidas64.c b/drivers/staging/comedi/drivers/cb_pcidas64.c
index 40d9713..b6fc5c1 100644
--- a/drivers/staging/comedi/drivers/cb_pcidas64.c
+++ b/drivers/staging/comedi/drivers/cb_pcidas64.c
@@ -1125,7 +1125,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int attach(struct comedi_device * dev, comedi_devconfig * it);
+static int attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int detach(struct comedi_device * dev);
 static struct comedi_driver driver_cb_pcidas = {
       driver_name:"cb_pcidas64",
@@ -1673,7 +1673,7 @@
  * Attach is called by the Comedi core to configure the driver
  * for a particular board.
  */
-static int attach(struct comedi_device * dev, comedi_devconfig * it)
+static int attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct pci_dev *pcidev;
 	int index;
diff --git a/drivers/staging/comedi/drivers/cb_pcidda.c b/drivers/staging/comedi/drivers/cb_pcidda.c
index ade2ef1..27f46a6 100644
--- a/drivers/staging/comedi/drivers/cb_pcidda.c
+++ b/drivers/staging/comedi/drivers/cb_pcidda.c
@@ -232,7 +232,7 @@
  */
 #define devpriv ((cb_pcidda_private *)dev->private)
 
-static int cb_pcidda_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int cb_pcidda_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int cb_pcidda_detach(struct comedi_device * dev);
 //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,
@@ -265,7 +265,7 @@
  * Attach is called by the Comedi core to configure the driver
  * for a particular board.
  */
-static int cb_pcidda_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int cb_pcidda_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	struct pci_dev *pcidev;
diff --git a/drivers/staging/comedi/drivers/cb_pcidio.c b/drivers/staging/comedi/drivers/cb_pcidio.c
index 61da4f0b..a34dc95 100644
--- a/drivers/staging/comedi/drivers/cb_pcidio.c
+++ b/drivers/staging/comedi/drivers/cb_pcidio.c
@@ -127,7 +127,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pcidio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcidio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcidio_detach(struct comedi_device * dev);
 static struct comedi_driver driver_cb_pcidio = {
       driver_name:"cb_pcidio",
@@ -166,7 +166,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pcidio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcidio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev = NULL;
 	int index;
diff --git a/drivers/staging/comedi/drivers/cb_pcimdas.c b/drivers/staging/comedi/drivers/cb_pcimdas.c
index ab588d1..dcd56f80 100644
--- a/drivers/staging/comedi/drivers/cb_pcimdas.c
+++ b/drivers/staging/comedi/drivers/cb_pcimdas.c
@@ -175,7 +175,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int cb_pcimdas_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int cb_pcimdas_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int cb_pcimdas_detach(struct comedi_device * dev);
 static struct comedi_driver driver_cb_pcimdas = {
       driver_name:"cb_pcimdas",
@@ -197,7 +197,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int cb_pcimdas_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int cb_pcimdas_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	struct pci_dev *pcidev;
diff --git a/drivers/staging/comedi/drivers/cb_pcimdda.c b/drivers/staging/comedi/drivers/cb_pcimdda.c
index dfbdcfa..c4600d0 100644
--- a/drivers/staging/comedi/drivers/cb_pcimdda.c
+++ b/drivers/staging/comedi/drivers/cb_pcimdda.c
@@ -181,7 +181,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int attach(struct comedi_device * dev, comedi_devconfig * it);
+static int attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int detach(struct comedi_device * dev);
 static struct comedi_driver cb_pcimdda_driver = {
       driver_name:"cb_pcimdda",
@@ -226,7 +226,7 @@
  *
  *  Otherwise, returns a -errno on error
  */
-static int probe(struct comedi_device * dev, const comedi_devconfig * it);
+static int probe(struct comedi_device * dev, const struct comedi_devconfig * it);
 
 /*---------------------------------------------------------------------------
   FUNCTION DEFINITIONS
@@ -238,7 +238,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int attach(struct comedi_device * dev, comedi_devconfig * it)
+static int attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int err;
@@ -425,7 +425,7 @@
  *
  *  Otherwise, returns a -errno on error
  */
-static int probe(struct comedi_device * dev, const comedi_devconfig * it)
+static int probe(struct comedi_device * dev, const struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev;
 	int index;
diff --git a/drivers/staging/comedi/drivers/comedi_bond.c b/drivers/staging/comedi/drivers/comedi_bond.c
index be46f17..1ee4898 100644
--- a/drivers/staging/comedi/drivers/comedi_bond.c
+++ b/drivers/staging/comedi/drivers/comedi_bond.c
@@ -176,10 +176,10 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int bonding_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int bonding_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int bonding_detach(struct comedi_device *dev);
 /** Build Private array of all devices.. */
-static int doDevConfig(struct comedi_device *dev, comedi_devconfig *it);
+static int doDevConfig(struct comedi_device *dev, struct comedi_devconfig *it);
 static void doDevUnconfig(struct comedi_device *dev);
 /* Ugly implementation of realloc that always copies memory around -- I'm lazy,
  * what can I say?  I like to do wasteful memcopies.. :) */
@@ -224,7 +224,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int bonding_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int bonding_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct comedi_subdevice *s;
 
@@ -394,7 +394,7 @@
 	return newmem;
 }
 
-static int doDevConfig(struct comedi_device *dev, comedi_devconfig *it)
+static int doDevConfig(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	int i;
 	void *devs_opened[COMEDI_NUM_BOARD_MINORS];
diff --git a/drivers/staging/comedi/drivers/comedi_parport.c b/drivers/staging/comedi/drivers/comedi_parport.c
index d58ceff..a233391 100644
--- a/drivers/staging/comedi/drivers/comedi_parport.c
+++ b/drivers/staging/comedi/drivers/comedi_parport.c
@@ -90,7 +90,7 @@
 #define PARPORT_B 1
 #define PARPORT_C 2
 
-static int parport_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int parport_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int parport_detach(struct comedi_device *dev);
 static struct comedi_driver driver_parport = {
       .driver_name =	"comedi_parport",
@@ -291,7 +291,7 @@
 	return IRQ_HANDLED;
 }
 
-static int parport_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int parport_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	int ret;
 	unsigned int irq;
diff --git a/drivers/staging/comedi/drivers/comedi_rt_timer.c b/drivers/staging/comedi/drivers/comedi_rt_timer.c
index 91a865d..29dd715 100644
--- a/drivers/staging/comedi/drivers/comedi_rt_timer.c
+++ b/drivers/staging/comedi/drivers/comedi_rt_timer.c
@@ -122,7 +122,7 @@
  * task period because analog input tends to be slow. */
 #define SPEED_LIMIT 100000	/* in nanoseconds */
 
-static int timer_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int timer_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int timer_detach(struct comedi_device * dev);
 static int timer_inttrig(struct comedi_device * dev, struct comedi_subdevice * s,
 	unsigned int trig_num);
@@ -607,7 +607,7 @@
 	return 0;
 }
 
-static int timer_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int timer_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	struct comedi_subdevice *s, *emul_s;
diff --git a/drivers/staging/comedi/drivers/comedi_test.c b/drivers/staging/comedi/drivers/comedi_test.c
index 09df3d3..a31817b 100644
--- a/drivers/staging/comedi/drivers/comedi_test.c
+++ b/drivers/staging/comedi/drivers/comedi_test.c
@@ -93,7 +93,7 @@
 };
 #define devpriv ((struct waveform_private *)dev->private)
 
-static int waveform_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int waveform_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int waveform_detach(struct comedi_device *dev);
 static struct comedi_driver driver_waveform = {
       .driver_name =	"comedi_test",
@@ -192,7 +192,7 @@
 	comedi_event(dev, dev->read_subdev);
 }
 
-static int waveform_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int waveform_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct comedi_subdevice *s;
 	int amplitude = it->options[0];
diff --git a/drivers/staging/comedi/drivers/contec_pci_dio.c b/drivers/staging/comedi/drivers/contec_pci_dio.c
index 0e0c790..46e13c6 100644
--- a/drivers/staging/comedi/drivers/contec_pci_dio.c
+++ b/drivers/staging/comedi/drivers/contec_pci_dio.c
@@ -75,7 +75,7 @@
 
 #define devpriv ((contec_private *)dev->private)
 
-static int contec_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int contec_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int contec_detach(struct comedi_device * dev);
 static struct comedi_driver driver_contec = {
       driver_name:"contec_pci_dio",
@@ -97,7 +97,7 @@
 static int contec_ns_to_timer(unsigned int *ns, int round);
 #endif
 
-static int contec_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int contec_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index adda2c4..a2408eb 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -296,7 +296,7 @@
 #define DAQBOARD2000_PosRefDacSelect             0x0100
 #define DAQBOARD2000_NegRefDacSelect             0x0000
 
-static int daqboard2000_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int daqboard2000_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int daqboard2000_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver_daqboard2000 = {
@@ -717,7 +717,7 @@
 	return result;
 }
 
-static int daqboard2000_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int daqboard2000_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int result = 0;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/das08.c b/drivers/staging/comedi/drivers/das08.c
index 8943a42..e456333 100644
--- a/drivers/staging/comedi/drivers/das08.c
+++ b/drivers/staging/comedi/drivers/das08.c
@@ -827,7 +827,7 @@
 	return 2;
 }
 
-static int das08_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das08_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 
 static struct comedi_driver driver_das08 = {
       driver_name: DRV_NAME,
@@ -952,7 +952,7 @@
 	return 0;
 }
 
-static int das08_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das08_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/das08_cs.c b/drivers/staging/comedi/drivers/das08_cs.c
index 310903a..7079f7c 100644
--- a/drivers/staging/comedi/drivers/das08_cs.c
+++ b/drivers/staging/comedi/drivers/das08_cs.c
@@ -56,7 +56,7 @@
 
 #define thisboard ((const struct das08_board_struct *)dev->board_ptr)
 
-static int das08_cs_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das08_cs_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 
 static struct comedi_driver driver_das08_cs = {
       driver_name:"das08_cs",
@@ -69,7 +69,7 @@
       offset:sizeof(struct das08_board_struct),
 };
 
-static int das08_cs_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das08_cs_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/das16.c b/drivers/staging/comedi/drivers/das16.c
index c4c12e6..b959ba8 100644
--- a/drivers/staging/comedi/drivers/das16.c
+++ b/drivers/staging/comedi/drivers/das16.c
@@ -698,7 +698,7 @@
 
 #define n_das16_boards ((sizeof(das16_boards))/(sizeof(das16_board)))
 
-static int das16_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das16_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int das16_detach(struct comedi_device * dev);
 static struct comedi_driver driver_das16 = {
       driver_name:"das16",
@@ -1304,7 +1304,7 @@
 		inb(dev->iobase + DAS1600_STATUS_B));
 }
 
-static int das16_probe(struct comedi_device * dev, comedi_devconfig * it)
+static int das16_probe(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int status;
 	int diobits;
@@ -1366,7 +1366,7 @@
  *   3  Clock speed (in MHz)
  */
 
-static int das16_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das16_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/das16m1.c b/drivers/staging/comedi/drivers/das16m1.c
index ea1fd6e..039d8e5 100644
--- a/drivers/staging/comedi/drivers/das16m1.c
+++ b/drivers/staging/comedi/drivers/das16m1.c
@@ -166,7 +166,7 @@
 
 #define das16m1_num_boards ((sizeof(das16m1_boards)) / (sizeof(das16m1_boards[0])))
 
-static int das16m1_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das16m1_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int das16m1_detach(struct comedi_device * dev);
 static struct comedi_driver driver_das16m1 = {
       driver_name:"das16m1",
@@ -635,7 +635,7 @@
  *   1  IRQ
  */
 
-static int das16m1_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das16m1_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/das1800.c b/drivers/staging/comedi/drivers/das1800.c
index cb53e8f..06f755a 100644
--- a/drivers/staging/comedi/drivers/das1800.c
+++ b/drivers/staging/comedi/drivers/das1800.c
@@ -180,7 +180,7 @@
 	das1802hr, das1802hr_da, das1801hc, das1802hc, das1801ao, das1802ao
 };
 
-static int das1800_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das1800_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int das1800_detach(struct comedi_device * dev);
 static int das1800_probe(struct comedi_device * dev);
 static int das1800_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
@@ -590,7 +590,7 @@
 	return 0;
 }
 
-static int das1800_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das1800_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = it->options[0];
diff --git a/drivers/staging/comedi/drivers/das6402.c b/drivers/staging/comedi/drivers/das6402.c
index 628e1116..37b4726 100644
--- a/drivers/staging/comedi/drivers/das6402.c
+++ b/drivers/staging/comedi/drivers/das6402.c
@@ -98,7 +98,7 @@
 #define	C2 0x80
 #define	RWLH 0x30
 
-static int das6402_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das6402_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int das6402_detach(struct comedi_device * dev);
 static struct comedi_driver driver_das6402 = {
       driver_name:"das6402",
@@ -299,7 +299,7 @@
 	return 0;
 }
 
-static int das6402_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das6402_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned int irq;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/das800.c b/drivers/staging/comedi/drivers/das800.c
index 179a694..85407ef 100644
--- a/drivers/staging/comedi/drivers/das800.c
+++ b/drivers/staging/comedi/drivers/das800.c
@@ -242,7 +242,7 @@
 
 #define devpriv ((das800_private *)dev->private)
 
-static int das800_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int das800_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int das800_detach(struct comedi_device * dev);
 static int das800_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
 
@@ -441,7 +441,7 @@
 	return IRQ_HANDLED;
 }
 
-static int das800_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int das800_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = it->options[0];
diff --git a/drivers/staging/comedi/drivers/dmm32at.c b/drivers/staging/comedi/drivers/dmm32at.c
index 36e283b..1b2c58f 100644
--- a/drivers/staging/comedi/drivers/dmm32at.c
+++ b/drivers/staging/comedi/drivers/dmm32at.c
@@ -258,7 +258,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int dmm32at_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dmm32at_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dmm32at_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dmm32at = {
       driver_name:"dmm32at",
@@ -313,7 +313,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int dmm32at_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dmm32at_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/dt2801.c b/drivers/staging/comedi/drivers/dt2801.c
index 847aa95..0915d39 100644
--- a/drivers/staging/comedi/drivers/dt2801.c
+++ b/drivers/staging/comedi/drivers/dt2801.c
@@ -88,7 +88,7 @@
 #define DT2801_STATUS		1
 #define DT2801_CMD		1
 
-static int dt2801_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt2801_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt2801_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt2801 = {
       driver_name:"dt2801",
@@ -478,7 +478,7 @@
 	[4] - dac0 range 0=[-10,10], 1=[-5,5], 2=[-2.5,2.5] 3=[0,10], 4=[0,5]
 	[5] - dac1 range 0=[-10,10], 1=[-5,5], 2=[-2.5,2.5] 3=[0,10], 4=[0,5]
 */
-static int dt2801_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt2801_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/dt2811.c b/drivers/staging/comedi/drivers/dt2811.c
index 165ea6f..722e3f5 100644
--- a/drivers/staging/comedi/drivers/dt2811.c
+++ b/drivers/staging/comedi/drivers/dt2811.c
@@ -212,7 +212,7 @@
 
 #define this_board ((const boardtype *)dev->board_ptr)
 
-static int dt2811_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt2811_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt2811_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt2811 = {
       driver_name:"dt2811",
@@ -308,7 +308,7 @@
                  2 == unipolar 5V  (0V -- +5V)
 */
 
-static int dt2811_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt2811_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	//int i, irq;
 	//unsigned long irqs;
diff --git a/drivers/staging/comedi/drivers/dt2814.c b/drivers/staging/comedi/drivers/dt2814.c
index f97fed0..660079a 100644
--- a/drivers/staging/comedi/drivers/dt2814.c
+++ b/drivers/staging/comedi/drivers/dt2814.c
@@ -59,7 +59,7 @@
 #define DT2814_ENB 0x10
 #define DT2814_CHANMASK 0x0f
 
-static int dt2814_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt2814_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt2814_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt2814 = {
       driver_name:"dt2814",
@@ -243,7 +243,7 @@
 
 }
 
-static int dt2814_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt2814_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int i, irq;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/dt2815.c b/drivers/staging/comedi/drivers/dt2815.c
index f9b79d2..553842e 100644
--- a/drivers/staging/comedi/drivers/dt2815.c
+++ b/drivers/staging/comedi/drivers/dt2815.c
@@ -75,7 +75,7 @@
 #define DT2815_DATA 0
 #define DT2815_STATUS 1
 
-static int dt2815_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt2815_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt2815_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt2815 = {
       driver_name:"dt2815",
@@ -177,7 +177,7 @@
                  1 == current
  */
 
-static int dt2815_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt2815_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int i;
diff --git a/drivers/staging/comedi/drivers/dt2817.c b/drivers/staging/comedi/drivers/dt2817.c
index 59376ac..2dc396a 100644
--- a/drivers/staging/comedi/drivers/dt2817.c
+++ b/drivers/staging/comedi/drivers/dt2817.c
@@ -47,7 +47,7 @@
 #define DT2817_CR 0
 #define DT2817_DATA 1
 
-static int dt2817_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt2817_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt2817_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt2817 = {
       driver_name:"dt2817",
@@ -131,7 +131,7 @@
 	return 2;
 }
 
-static int dt2817_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt2817_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/dt282x.c b/drivers/staging/comedi/drivers/dt282x.c
index 1a74f31..1cc0e3b 100644
--- a/drivers/staging/comedi/drivers/dt282x.c
+++ b/drivers/staging/comedi/drivers/dt282x.c
@@ -394,7 +394,7 @@
 		if(_i){b}				\
 	}while(0)
 
-static int dt282x_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt282x_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt282x_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt282x = {
       driver_name:"dt282x",
@@ -1240,7 +1240,7 @@
    9	ao0 0=±10 V, 1=0-10 V, 2=±5 V, 3=0-5 V, 4=±2.5 V
    10	ao1 0=±10 V, 1=0-10 V, 2=±5 V, 3=0-5 V, 4=±2.5 V
  */
-static int dt282x_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt282x_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int i, irq;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c
index 4b140f2..a8367d9 100644
--- a/drivers/staging/comedi/drivers/dt3000.c
+++ b/drivers/staging/comedi/drivers/dt3000.c
@@ -271,7 +271,7 @@
 } dt3k_private;
 #define devpriv ((dt3k_private *)dev->private)
 
-static int dt3000_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt3000_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dt3000_detach(struct comedi_device * dev);
 static struct comedi_driver driver_dt3000 = {
       driver_name:"dt3000",
@@ -797,7 +797,7 @@
 
 static int dt_pci_probe(struct comedi_device * dev, int bus, int slot);
 
-static int dt3000_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dt3000_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int bus, slot;
diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c
index e2131fd..cc4c046 100644
--- a/drivers/staging/comedi/drivers/dt9812.c
+++ b/drivers/staging/comedi/drivers/dt9812.c
@@ -1009,7 +1009,7 @@
 	return n;
 }
 
-static int dt9812_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int dt9812_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	int i;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/fl512.c b/drivers/staging/comedi/drivers/fl512.c
index cd6b3e0..6fe747d 100644
--- a/drivers/staging/comedi/drivers/fl512.c
+++ b/drivers/staging/comedi/drivers/fl512.c
@@ -40,7 +40,7 @@
 	}
 };
 
-static int fl512_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int fl512_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int fl512_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver_fl512 = {
@@ -124,7 +124,7 @@
 /*
  * start attach
  */
-static int fl512_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int fl512_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned long iobase;
 	struct comedi_subdevice *s;	/* pointer to the subdevice:
diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c b/drivers/staging/comedi/drivers/gsc_hpdi.c
index 5227e3e..535aadb 100644
--- a/drivers/staging/comedi/drivers/gsc_hpdi.c
+++ b/drivers/staging/comedi/drivers/gsc_hpdi.c
@@ -52,7 +52,7 @@
 #include "plx9080.h"
 #include "comedi_fc.h"
 
-static int hpdi_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int hpdi_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int hpdi_detach(struct comedi_device * dev);
 void abort_dma(struct comedi_device * dev, unsigned int channel);
 static int hpdi_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
@@ -552,7 +552,7 @@
 	return transfer_size;
 }
 
-static int hpdi_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int hpdi_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pci_dev *pcidev;
 	int i;
diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c
index 5463718..15fce01 100644
--- a/drivers/staging/comedi/drivers/icp_multi.c
+++ b/drivers/staging/comedi/drivers/icp_multi.c
@@ -123,7 +123,7 @@
 	Forward declarations
 ==============================================================================
 */
-static int icp_multi_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int icp_multi_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int icp_multi_detach(struct comedi_device *dev);
 
 /*
@@ -864,13 +864,13 @@
 
 	Parameters:
 		struct comedi_device *dev	Pointer to current device structure
-		comedi_devconfig *it	Pointer to current device configuration
+		struct comedi_devconfig *it	Pointer to current device configuration
 
 	Returns:int	0 = success
 
 ==============================================================================
 */
-static int icp_multi_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int icp_multi_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct comedi_subdevice *s;
 	int ret, subdev, n_subdevices;
diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c
index 5f513ba..a31f0d2 100644
--- a/drivers/staging/comedi/drivers/ii_pci20kc.c
+++ b/drivers/staging/comedi/drivers/ii_pci20kc.c
@@ -156,7 +156,7 @@
 #define devpriv ((pci20xxx_private *)dev->private)
 #define CHAN (CR_CHAN(it->chanlist[0]))
 
-static int pci20xxx_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pci20xxx_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pci20xxx_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver_pci20xxx = {
@@ -199,7 +199,7 @@
 		1 == unipolar 10V  (0V -- +10V)
 		2 == bipolar 5V  (-5V -- +5V)
 */
-static int pci20xxx_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci20xxx_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned char i;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/jr3_pci.c b/drivers/staging/comedi/drivers/jr3_pci.c
index 19371c6..8f481b54 100644
--- a/drivers/staging/comedi/drivers/jr3_pci.c
+++ b/drivers/staging/comedi/drivers/jr3_pci.c
@@ -103,7 +103,7 @@
 #define PCI_DEVICE_ID_JR3_3_CHANNEL 0x3113
 #define PCI_DEVICE_ID_JR3_4_CHANNEL 0x3114
 
-static int jr3_pci_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int jr3_pci_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int jr3_pci_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver_jr3_pci = {
@@ -770,7 +770,7 @@
 	add_timer(&devpriv->timer);
 }
 
-static int jr3_pci_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int jr3_pci_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int result = 0;
 	struct pci_dev *card = NULL;
diff --git a/drivers/staging/comedi/drivers/ke_counter.c b/drivers/staging/comedi/drivers/ke_counter.c
index f3b4f74..105a9cf 100644
--- a/drivers/staging/comedi/drivers/ke_counter.c
+++ b/drivers/staging/comedi/drivers/ke_counter.c
@@ -48,7 +48,7 @@
 
 /*-- function prototypes ----------------------------------------------------*/
 
-static int cnt_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int cnt_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int cnt_detach(struct comedi_device * dev);
 
 static DEFINE_PCI_DEVICE_TABLE(cnt_pci_table) = {
@@ -144,7 +144,7 @@
 
 /*-- attach -----------------------------------------------------------------*/
 
-static int cnt_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int cnt_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *subdevice;
 	struct pci_dev *pci_device;
diff --git a/drivers/staging/comedi/drivers/me4000.c b/drivers/staging/comedi/drivers/me4000.c
index 70c3cc2..d0a17a1 100644
--- a/drivers/staging/comedi/drivers/me4000.c
+++ b/drivers/staging/comedi/drivers/me4000.c
@@ -118,7 +118,7 @@
 /*-----------------------------------------------------------------------------
   Comedi function prototypes
   ---------------------------------------------------------------------------*/
-static int me4000_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int me4000_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int me4000_detach(struct comedi_device *dev);
 static struct comedi_driver driver_me4000 = {
       driver_name:"me4000",
@@ -130,7 +130,7 @@
 /*-----------------------------------------------------------------------------
   Meilhaus function prototypes
   ---------------------------------------------------------------------------*/
-static int me4000_probe(struct comedi_device *dev, comedi_devconfig *it);
+static int me4000_probe(struct comedi_device *dev, struct comedi_devconfig *it);
 static int get_registers(struct comedi_device *dev, struct pci_dev *pci_dev_p);
 static int init_board_info(struct comedi_device *dev, struct pci_dev *pci_dev_p);
 static int init_ao_context(struct comedi_device *dev);
@@ -247,7 +247,7 @@
 		}
 };
 
-static int me4000_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int me4000_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct comedi_subdevice *s;
 	int result;
@@ -369,7 +369,7 @@
 	return 0;
 }
 
-static int me4000_probe(struct comedi_device *dev, comedi_devconfig *it)
+static int me4000_probe(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct pci_dev *pci_device;
 	int result, i;
diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c
index 901e1d1..0f023d00 100644
--- a/drivers/staging/comedi/drivers/me_daq.c
+++ b/drivers/staging/comedi/drivers/me_daq.c
@@ -144,7 +144,7 @@
 #define ME_COUNTER_VALUE_B		0x0022	/* R | - */
 
 /* Function prototypes */
-static int me_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int me_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int me_detach(struct comedi_device *dev);
 
 static const struct comedi_lrange me2000_ai_range = {
@@ -632,7 +632,7 @@
  * - Register PCI device
  * - Declare device driver capability
  */
-static int me_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int me_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	struct pci_dev *pci_device;
 	struct comedi_subdevice *subdevice;
diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c
index 59e8ecd..ee053f1 100644
--- a/drivers/staging/comedi/drivers/mpc624.c
+++ b/drivers/staging/comedi/drivers/mpc624.c
@@ -144,7 +144,7 @@
 };
 
 //----------------------------------------------------------------------------
-static int mpc624_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int mpc624_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int mpc624_detach(struct comedi_device * dev);
 //----------------------------------------------------------------------------
 static struct comedi_driver driver_mpc624 = {
@@ -158,7 +158,7 @@
 static int mpc624_ai_rinsn(struct comedi_device * dev, struct comedi_subdevice * s,
 	struct comedi_insn * insn, unsigned int * data);
 //----------------------------------------------------------------------------
-static int mpc624_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int mpc624_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/mpc8260cpm.c b/drivers/staging/comedi/drivers/mpc8260cpm.c
index 645c470..7250865 100644
--- a/drivers/staging/comedi/drivers/mpc8260cpm.c
+++ b/drivers/staging/comedi/drivers/mpc8260cpm.c
@@ -44,7 +44,7 @@
 } mpc8260cpm_private;
 #define devpriv ((mpc8260cpm_private *)dev->private)
 
-static int mpc8260cpm_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int mpc8260cpm_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int mpc8260cpm_detach(struct comedi_device * dev);
 static struct comedi_driver driver_mpc8260cpm = {
       driver_name:"mpc8260cpm",
@@ -60,7 +60,7 @@
 static int mpc8260cpm_dio_bits(struct comedi_device * dev, struct comedi_subdevice * s,
 	struct comedi_insn * insn, unsigned int * data);
 
-static int mpc8260cpm_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int mpc8260cpm_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int i;
diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c
index 1ff60fa..9e47574 100644
--- a/drivers/staging/comedi/drivers/multiq3.c
+++ b/drivers/staging/comedi/drivers/multiq3.c
@@ -82,7 +82,7 @@
 
 #define MULTIQ3_TIMEOUT 30
 
-static int multiq3_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int multiq3_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int multiq3_detach(struct comedi_device * dev);
 static struct comedi_driver driver_multiq3 = {
       driver_name:"multiq3",
@@ -235,7 +235,7 @@
    options[2] - number of encoder chips installed
  */
 
-static int multiq3_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int multiq3_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int result = 0;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/ni_6527.c b/drivers/staging/comedi/drivers/ni_6527.c
index 52c35c4..18fb799 100644
--- a/drivers/staging/comedi/drivers/ni_6527.c
+++ b/drivers/staging/comedi/drivers/ni_6527.c
@@ -75,7 +75,7 @@
 #define Rising_Edge_Detection_Enable(x)		(0x018+(x))
 #define Falling_Edge_Detection_Enable(x)	(0x020+(x))
 
-static int ni6527_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int ni6527_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int ni6527_detach(struct comedi_device * dev);
 static struct comedi_driver driver_ni6527 = {
       driver_name:"ni6527",
@@ -361,7 +361,7 @@
 	return 2;
 }
 
-static int ni6527_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int ni6527_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/ni_65xx.c b/drivers/staging/comedi/drivers/ni_65xx.c
index 7b43997..59edcdf 100644
--- a/drivers/staging/comedi/drivers/ni_65xx.c
+++ b/drivers/staging/comedi/drivers/ni_65xx.c
@@ -102,7 +102,7 @@
 #define OverflowIntEnable		0x02
 #define EdgeIntEnable			0x01
 
-static int ni_65xx_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int ni_65xx_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int ni_65xx_detach(struct comedi_device * dev);
 static struct comedi_driver driver_ni_65xx = {
       driver_name:"ni_65xx",
@@ -615,7 +615,7 @@
 	return 2;
 }
 
-static int ni_65xx_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int ni_65xx_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned i;
diff --git a/drivers/staging/comedi/drivers/ni_660x.c b/drivers/staging/comedi/drivers/ni_660x.c
index 7760df6..0af2049 100644
--- a/drivers/staging/comedi/drivers/ni_660x.c
+++ b/drivers/staging/comedi/drivers/ni_660x.c
@@ -444,7 +444,7 @@
 
 #define n_ni_660x_boards (sizeof(ni_660x_boards)/sizeof(ni_660x_boards[0]))
 
-static int ni_660x_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int ni_660x_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int ni_660x_detach(struct comedi_device * dev);
 static void init_tio_chip(struct comedi_device * dev, int chipset);
 static void ni_660x_select_pfi_output(struct comedi_device * dev, unsigned pfi_channel,
@@ -980,7 +980,7 @@
 	}
 }
 
-static int ni_660x_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int ni_660x_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/ni_670x.c b/drivers/staging/comedi/drivers/ni_670x.c
index 7c07ebb..28b3355 100644
--- a/drivers/staging/comedi/drivers/ni_670x.c
+++ b/drivers/staging/comedi/drivers/ni_670x.c
@@ -108,7 +108,7 @@
 #define devpriv ((ni_670x_private *)dev->private)
 #define n_ni_670x_boards (sizeof(ni_670x_boards)/sizeof(ni_670x_boards[0]))
 
-static int ni_670x_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int ni_670x_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int ni_670x_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver_ni_670x = {
@@ -133,7 +133,7 @@
 static int ni_670x_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
 	struct comedi_insn * insn, unsigned int * data);
 
-static int ni_670x_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int ni_670x_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/ni_at_a2150.c b/drivers/staging/comedi/drivers/ni_at_a2150.c
index 6f2f8d3..d142278 100644
--- a/drivers/staging/comedi/drivers/ni_at_a2150.c
+++ b/drivers/staging/comedi/drivers/ni_at_a2150.c
@@ -167,7 +167,7 @@
 
 #define devpriv ((a2150_private *)dev->private)
 
-static int a2150_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int a2150_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int a2150_detach(struct comedi_device * dev);
 static int a2150_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
 
@@ -322,7 +322,7 @@
 	return ID_BITS(status);
 }
 
-static int a2150_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int a2150_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = it->options[0];
diff --git a/drivers/staging/comedi/drivers/ni_at_ao.c b/drivers/staging/comedi/drivers/ni_at_ao.c
index c42d89d..f8c950d 100644
--- a/drivers/staging/comedi/drivers/ni_at_ao.c
+++ b/drivers/staging/comedi/drivers/ni_at_ao.c
@@ -178,7 +178,7 @@
 } atao_private;
 #define devpriv ((atao_private *)dev->private)
 
-static int atao_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int atao_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int atao_detach(struct comedi_device * dev);
 static struct comedi_driver driver_atao = {
       driver_name:"ni_at_ao",
@@ -207,7 +207,7 @@
 static int atao_calib_insn_write(struct comedi_device * dev, struct comedi_subdevice * s,
 	struct comedi_insn * insn, unsigned int * data);
 
-static int atao_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int atao_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/ni_atmio.c b/drivers/staging/comedi/drivers/ni_atmio.c
index d5baaa1..fcc3853 100644
--- a/drivers/staging/comedi/drivers/ni_atmio.c
+++ b/drivers/staging/comedi/drivers/ni_atmio.c
@@ -338,7 +338,7 @@
 
 MODULE_DEVICE_TABLE(pnp, device_ids);
 
-static int ni_atmio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int ni_atmio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int ni_atmio_detach(struct comedi_device * dev);
 static struct comedi_driver driver_atmio = {
       driver_name:"ni_atmio",
@@ -404,7 +404,7 @@
 	return 0;
 }
 
-static int ni_atmio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int ni_atmio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pnp_dev *isapnp_dev;
 	int ret;
diff --git a/drivers/staging/comedi/drivers/ni_atmio16d.c b/drivers/staging/comedi/drivers/ni_atmio16d.c
index 4d3cb5f..5edaa67 100644
--- a/drivers/staging/comedi/drivers/ni_atmio16d.c
+++ b/drivers/staging/comedi/drivers/ni_atmio16d.c
@@ -123,7 +123,7 @@
 #define boardtype ((const atmio16_board_t *)dev->board_ptr)
 
 /* function prototypes */
-static int atmio16d_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int atmio16d_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int atmio16d_detach(struct comedi_device * dev);
 static irqreturn_t atmio16d_interrupt(int irq, void *d PT_REGS_ARG);
 static int atmio16d_ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
@@ -704,7 +704,7 @@
    options[12] - dac1 coding
  */
 
-static int atmio16d_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int atmio16d_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned int irq;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index a1a0663b..1530416 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -55,7 +55,7 @@
 
 #define DIO700_SIZE 8		// size of io region used by board
 
-static int dio700_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dio700_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dio700_detach(struct comedi_device * dev);
 
 enum dio700_bustype { pcmcia_bustype };
@@ -350,7 +350,7 @@
 EXPORT_SYMBOL(subdev_700_cleanup);
 EXPORT_SYMBOL(subdev_700_interrupt);
 
-static int dio700_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dio700_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = 0;
diff --git a/drivers/staging/comedi/drivers/ni_daq_dio24.c b/drivers/staging/comedi/drivers/ni_daq_dio24.c
index 5783a8f..ed734bb 100644
--- a/drivers/staging/comedi/drivers/ni_daq_dio24.c
+++ b/drivers/staging/comedi/drivers/ni_daq_dio24.c
@@ -56,7 +56,7 @@
 
 #define DIO24_SIZE 4		// size of io region used by board
 
-static int dio24_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dio24_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dio24_detach(struct comedi_device * dev);
 
 enum dio24_bustype { pcmcia_bustype };
@@ -107,7 +107,7 @@
       offset:sizeof(dio24_board),
 };
 
-static int dio24_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dio24_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase = 0;
diff --git a/drivers/staging/comedi/drivers/ni_labpc.c b/drivers/staging/comedi/drivers/ni_labpc.c
index f6ab0fd..37898d8 100644
--- a/drivers/staging/comedi/drivers/ni_labpc.c
+++ b/drivers/staging/comedi/drivers/ni_labpc.c
@@ -163,7 +163,7 @@
 #define   INIT_A1_BITS	0x70	// put hardware conversion counter output in harmless state (a1 mode 0)
 #define COUNTER_B_BASE_REG	0x18
 
-static int labpc_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int labpc_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int labpc_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
 static irqreturn_t labpc_interrupt(int irq, void *d PT_REGS_ARG);
 static int labpc_drain_fifo(struct comedi_device * dev);
@@ -643,7 +643,7 @@
 	return 0;
 }
 
-static int labpc_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int labpc_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned long iobase = 0;
 	unsigned int irq = 0;
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c
index f94cde9..ac0ce2f 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_cs.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c
@@ -79,7 +79,7 @@
 
 static struct pcmcia_device *pcmcia_cur_dev = NULL;
 
-static int labpc_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int labpc_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 
 static const labpc_board labpc_cs_boards[] = {
 	{
@@ -126,7 +126,7 @@
 	.offset = sizeof(labpc_board),
 };
 
-static int labpc_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int labpc_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned long iobase = 0;
 	unsigned int irq = 0;
diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c b/drivers/staging/comedi/drivers/ni_mio_common.c
index 52984b0..ce8c704 100644
--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -4289,7 +4289,7 @@
 	return 0;
 };
 
-static int ni_E_init(struct comedi_device * dev, comedi_devconfig * it)
+static int ni_E_init(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned j;
diff --git a/drivers/staging/comedi/drivers/ni_mio_cs.c b/drivers/staging/comedi/drivers/ni_mio_cs.c
index c3dad59..9822f5e 100644
--- a/drivers/staging/comedi/drivers/ni_mio_cs.c
+++ b/drivers/staging/comedi/drivers/ni_mio_cs.c
@@ -225,7 +225,7 @@
 	return ret;
 }
 
-static int mio_cs_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int mio_cs_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int mio_cs_detach(struct comedi_device * dev);
 static struct comedi_driver driver_ni_mio_cs = {
       driver_name:"ni_mio_cs",
@@ -401,7 +401,7 @@
 	link->dev_node = &dev_node;
 }
 
-static int mio_cs_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int mio_cs_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct pcmcia_device *link;
 	unsigned int irq;
diff --git a/drivers/staging/comedi/drivers/ni_pcidio.c b/drivers/staging/comedi/drivers/ni_pcidio.c
index d7cdb38..339f059 100644
--- a/drivers/staging/comedi/drivers/ni_pcidio.c
+++ b/drivers/staging/comedi/drivers/ni_pcidio.c
@@ -287,7 +287,7 @@
 #define IntEn (TransferReady|CountExpired|Waited|PrimaryTC|SecondaryTC)
 #endif
 
-static int nidio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int nidio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int nidio_detach(struct comedi_device * dev);
 static int ni_pcidio_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
 
@@ -1149,7 +1149,7 @@
 	return 0;
 }
 
-static int nidio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int nidio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int i;
diff --git a/drivers/staging/comedi/drivers/ni_pcimio.c b/drivers/staging/comedi/drivers/ni_pcimio.c
index f67fa6d..3a2aba7 100644
--- a/drivers/staging/comedi/drivers/ni_pcimio.c
+++ b/drivers/staging/comedi/drivers/ni_pcimio.c
@@ -1207,7 +1207,7 @@
 
 #define n_pcimio_boards ((sizeof(ni_boards)/sizeof(ni_boards[0])))
 
-static int pcimio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcimio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcimio_detach(struct comedi_device * dev);
 static struct comedi_driver driver_pcimio = {
 	driver_name: DRV_NAME,
@@ -1616,7 +1616,7 @@
 	return 0;
 }
 
-static int pcimio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcimio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 
diff --git a/drivers/staging/comedi/drivers/pcl711.c b/drivers/staging/comedi/drivers/pcl711.c
index 01ea3eb..3e83b6c 100644
--- a/drivers/staging/comedi/drivers/pcl711.c
+++ b/drivers/staging/comedi/drivers/pcl711.c
@@ -154,7 +154,7 @@
 #define n_boardtypes (sizeof(boardtypes)/sizeof(boardtype))
 #define this_board ((const boardtype *)dev->board_ptr)
 
-static int pcl711_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl711_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl711_detach(struct comedi_device * dev);
 static struct comedi_driver driver_pcl711 = {
       driver_name:"pcl711",
@@ -508,7 +508,7 @@
 }
 
 /*  Initialization */
-static int pcl711_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl711_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcl724.c b/drivers/staging/comedi/drivers/pcl724.c
index 455117d..108649f 100644
--- a/drivers/staging/comedi/drivers/pcl724.c
+++ b/drivers/staging/comedi/drivers/pcl724.c
@@ -56,7 +56,7 @@
 
 // #define PCL724_IRQ   1  /* no IRQ support now */
 
-static int pcl724_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl724_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl724_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -122,7 +122,7 @@
 	}
 }
 
-static int pcl724_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl724_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned long iobase;
 	unsigned int iorange;
diff --git a/drivers/staging/comedi/drivers/pcl725.c b/drivers/staging/comedi/drivers/pcl725.c
index d9f7c24..0766ba0 100644
--- a/drivers/staging/comedi/drivers/pcl725.c
+++ b/drivers/staging/comedi/drivers/pcl725.c
@@ -20,7 +20,7 @@
 #define PCL725_DO 0
 #define PCL725_DI 1
 
-static int pcl725_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl725_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl725_detach(struct comedi_device * dev);
 static struct comedi_driver driver_pcl725 = {
       driver_name:"pcl725",
@@ -59,7 +59,7 @@
 	return 2;
 }
 
-static int pcl725_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl725_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcl726.c b/drivers/staging/comedi/drivers/pcl726.c
index f0c8b0a..8f0425f 100644
--- a/drivers/staging/comedi/drivers/pcl726.c
+++ b/drivers/staging/comedi/drivers/pcl726.c
@@ -111,7 +111,7 @@
 	&range_4_20mA, &range_0_20mA
 };
 
-static int pcl726_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl726_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl726_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -237,7 +237,7 @@
 	return 2;
 }
 
-static int pcl726_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl726_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcl730.c b/drivers/staging/comedi/drivers/pcl730.c
index 05d9f76..f290e11 100644
--- a/drivers/staging/comedi/drivers/pcl730.c
+++ b/drivers/staging/comedi/drivers/pcl730.c
@@ -26,7 +26,7 @@
 #define PCL730_DIO_LO	2	/* TTL Digital I/O low byte (D0-D7) */
 #define PCL730_DIO_HI	3	/* TTL Digital I/O high byte (D8-D15) */
 
-static int pcl730_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl730_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl730_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -89,7 +89,7 @@
 	return 2;
 }
 
-static int pcl730_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl730_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c
index 7b0a95c..07a1098 100644
--- a/drivers/staging/comedi/drivers/pcl812.c
+++ b/drivers/staging/comedi/drivers/pcl812.c
@@ -292,7 +292,7 @@
 	}
 };
 
-static int pcl812_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl812_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl812_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -1262,7 +1262,7 @@
 /*
 ==============================================================================
 */
-static int pcl812_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl812_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret, subdev;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c
index 9542d0e..1d1137f 100644
--- a/drivers/staging/comedi/drivers/pcl816.c
+++ b/drivers/staging/comedi/drivers/pcl816.c
@@ -146,7 +146,7 @@
 #define devpriv ((pcl816_private *)dev->private)
 #define this_board ((const boardtype *)dev->board_ptr)
 
-static int pcl816_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl816_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl816_detach(struct comedi_device * dev);
 
 #ifdef unused
@@ -1011,7 +1011,7 @@
    Initialization
 
 */
-static int pcl816_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl816_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c
index 4b315c0..fb5ddad1 100644
--- a/drivers/staging/comedi/drivers/pcl818.c
+++ b/drivers/staging/comedi/drivers/pcl818.c
@@ -244,7 +244,7 @@
 static const struct comedi_lrange range718_unipolar2 = { 1, {UNI_RANGE(2),} };
 static const struct comedi_lrange range718_unipolar1 = { 1, {BIP_RANGE(1),} };
 
-static int pcl818_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl818_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcl818_detach(struct comedi_device * dev);
 
 #ifdef unused
@@ -1675,7 +1675,7 @@
    Initialization
 
 */
-static int pcl818_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcl818_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c
index 08a63eb..ba4de98 100644
--- a/drivers/staging/comedi/drivers/pcm3724.c
+++ b/drivers/staging/comedi/drivers/pcm3724.c
@@ -62,7 +62,7 @@
 #define CR_A_MODE(a)	((a)<<5)
 #define CR_CW		0x80
 
-static int pcm3724_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcm3724_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcm3724_detach(struct comedi_device * dev);
 
 typedef struct {
@@ -251,7 +251,7 @@
 	return 1;
 }
 
-static int pcm3724_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcm3724_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned long iobase;
 	unsigned int iorange;
diff --git a/drivers/staging/comedi/drivers/pcm3730.c b/drivers/staging/comedi/drivers/pcm3730.c
index 63b961b..1de555f 100644
--- a/drivers/staging/comedi/drivers/pcm3730.c
+++ b/drivers/staging/comedi/drivers/pcm3730.c
@@ -28,7 +28,7 @@
 #define PCM3730_DIB 2
 #define PCM3730_DIC 3
 
-static int pcm3730_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcm3730_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcm3730_detach(struct comedi_device * dev);
 static struct comedi_driver driver_pcm3730 = {
       driver_name:"pcm3730",
@@ -63,7 +63,7 @@
 	return 2;
 }
 
-static int pcm3730_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcm3730_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcmad.c b/drivers/staging/comedi/drivers/pcmad.c
index fe39909..fc2a73d 100644
--- a/drivers/staging/comedi/drivers/pcmad.c
+++ b/drivers/staging/comedi/drivers/pcmad.c
@@ -76,7 +76,7 @@
 };
 #define devpriv ((struct pcmad_priv_struct *)dev->private)
 
-static int pcmad_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcmad_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcmad_detach(struct comedi_device * dev);
 static struct comedi_driver driver_pcmad = {
       driver_name:"pcmad",
@@ -126,7 +126,7 @@
  * 2	0=single ended 1=differential
  * 3	0=straight binary 1=two's comp
  */
-static int pcmad_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcmad_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/pcmda12.c b/drivers/staging/comedi/drivers/pcmda12.c
index d9f0b03..ad77268 100644
--- a/drivers/staging/comedi/drivers/pcmda12.c
+++ b/drivers/staging/comedi/drivers/pcmda12.c
@@ -105,7 +105,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pcmda12_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcmda12_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcmda12_detach(struct comedi_device * dev);
 
 static void zero_chans(struct comedi_device * dev);
@@ -149,7 +149,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pcmda12_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcmda12_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/pcmmio.c b/drivers/staging/comedi/drivers/pcmmio.c
index e44dee9..85c2054 100644
--- a/drivers/staging/comedi/drivers/pcmmio.c
+++ b/drivers/staging/comedi/drivers/pcmmio.c
@@ -264,7 +264,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pcmmio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcmmio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcmmio_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver = {
@@ -321,7 +321,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pcmmio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcmmio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int sdev_no, chans_left, n_dio_subdevs, n_subdevs, port, asic,
diff --git a/drivers/staging/comedi/drivers/pcmuio.c b/drivers/staging/comedi/drivers/pcmuio.c
index fca574b..97ae349 100644
--- a/drivers/staging/comedi/drivers/pcmuio.c
+++ b/drivers/staging/comedi/drivers/pcmuio.c
@@ -222,7 +222,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int pcmuio_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcmuio_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int pcmuio_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver = {
@@ -279,7 +279,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int pcmuio_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pcmuio_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int sdev_no, chans_left, n_subdevs, port, asic, thisasic_chanct = 0;
diff --git a/drivers/staging/comedi/drivers/poc.c b/drivers/staging/comedi/drivers/poc.c
index 39a6f94..8a0bf68 100644
--- a/drivers/staging/comedi/drivers/poc.c
+++ b/drivers/staging/comedi/drivers/poc.c
@@ -41,7 +41,7 @@
 
 #include <linux/ioport.h>
 
-static int poc_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int poc_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int poc_detach(struct comedi_device * dev);
 static int readback_insn(struct comedi_device * dev, struct comedi_subdevice * s,
 	struct comedi_insn * insn, unsigned int * data);
@@ -113,7 +113,7 @@
       offset:sizeof(boards[0]),
 };
 
-static int poc_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int poc_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
index 6494312..f405341 100644
--- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c
+++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
@@ -197,7 +197,7 @@
 
 /* comedi interface code */
 
-static int daqp_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int daqp_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int daqp_detach(struct comedi_device * dev);
 static struct comedi_driver driver_daqp = {
       driver_name:"quatech_daqp_cs",
@@ -856,7 +856,7 @@
  * when it is inserted.
  */
 
-static int daqp_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int daqp_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int ret;
 	local_info_t *local = dev_table[it->options[0]];
diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c
index c919b8e..ca347f2 100644
--- a/drivers/staging/comedi/drivers/rtd520.c
+++ b/drivers/staging/comedi/drivers/rtd520.c
@@ -680,7 +680,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int rtd_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int rtd_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int rtd_detach(struct comedi_device *dev);
 
 static struct comedi_driver rtd520Driver = {
@@ -715,7 +715,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int rtd_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int rtd_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {				/* board name and options flags */
 	struct comedi_subdevice *s;
 	struct pci_dev *pcidev;
diff --git a/drivers/staging/comedi/drivers/rti800.c b/drivers/staging/comedi/drivers/rti800.c
index a93f570..bd57971 100644
--- a/drivers/staging/comedi/drivers/rti800.c
+++ b/drivers/staging/comedi/drivers/rti800.c
@@ -129,7 +129,7 @@
 
 #define this_board ((const boardtype *)dev->board_ptr)
 
-static int rti800_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int rti800_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int rti800_detach(struct comedi_device * dev);
 static struct comedi_driver driver_rti800 = {
       driver_name:"rti800",
@@ -307,7 +307,7 @@
    options[8] - dac1 coding
  */
 
-static int rti800_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int rti800_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	unsigned int irq;
 	unsigned long iobase;
diff --git a/drivers/staging/comedi/drivers/rti802.c b/drivers/staging/comedi/drivers/rti802.c
index 3249d08..656742b 100644
--- a/drivers/staging/comedi/drivers/rti802.c
+++ b/drivers/staging/comedi/drivers/rti802.c
@@ -47,7 +47,7 @@
 #define RTI802_DATALOW 1
 #define RTI802_DATAHIGH 2
 
-static int rti802_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int rti802_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int rti802_detach(struct comedi_device * dev);
 static struct comedi_driver driver_rti802 = {
       driver_name:"rti802",
@@ -96,7 +96,7 @@
 	return i;
 }
 
-static int rti802_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int rti802_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int i;
diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c
index b9b48b2f..e5ee543 100644
--- a/drivers/staging/comedi/drivers/s526.c
+++ b/drivers/staging/comedi/drivers/s526.c
@@ -215,7 +215,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int s526_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int s526_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int s526_detach(struct comedi_device * dev);
 static struct comedi_driver driver_s526 = {
       driver_name:"s526",
@@ -270,7 +270,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int s526_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int s526_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 	int iobase;
diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c
index 7385031..3e6f1f0 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -118,7 +118,7 @@
 
 MODULE_DEVICE_TABLE(pci, s626_pci_table);
 
-static int s626_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it);
 static int s626_detach(struct comedi_device *dev);
 
 static struct comedi_driver driver_s626 = {
@@ -485,7 +485,7 @@
 	}
 };
 
-static int s626_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 /*   uint8_t	PollList; */
 /*   uint16_t	AdcData; */
diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c
index 2271bd4..ca41baa 100644
--- a/drivers/staging/comedi/drivers/serial2002.c
+++ b/drivers/staging/comedi/drivers/serial2002.c
@@ -85,7 +85,7 @@
  */
 #define devpriv ((serial2002_private *)dev->private)
 
-static int serial2002_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int serial2002_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int serial2002_detach(struct comedi_device * dev);
 struct comedi_driver driver_serial2002 = {
       driver_name:"serial2002",
@@ -776,7 +776,7 @@
 	return n;
 }
 
-static int serial2002_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int serial2002_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 
diff --git a/drivers/staging/comedi/drivers/skel.c b/drivers/staging/comedi/drivers/skel.c
index 2d25354..b8cdd6f 100644
--- a/drivers/staging/comedi/drivers/skel.c
+++ b/drivers/staging/comedi/drivers/skel.c
@@ -151,7 +151,7 @@
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int skel_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int skel_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int skel_detach(struct comedi_device * dev);
 static struct comedi_driver driver_skel = {
       driver_name:"dummy",
@@ -201,7 +201,7 @@
  * in the driver structure, dev->board_ptr contains that
  * address.
  */
-static int skel_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int skel_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	struct comedi_subdevice *s;
 
diff --git a/drivers/staging/comedi/drivers/ssv_dnp.c b/drivers/staging/comedi/drivers/ssv_dnp.c
index cf3adf7..8965df7 100644
--- a/drivers/staging/comedi/drivers/ssv_dnp.c
+++ b/drivers/staging/comedi/drivers/ssv_dnp.c
@@ -87,7 +87,7 @@
 /* In the following section we define the API of this driver.                */
 /* ------------------------------------------------------------------------- */
 
-static int dnp_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dnp_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int dnp_detach(struct comedi_device * dev);
 
 static struct comedi_driver driver_dnp = {
@@ -115,7 +115,7 @@
 /* dev->board_ptr contains that address.                                     */
 /* ------------------------------------------------------------------------- */
 
-static int dnp_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int dnp_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 
 	struct comedi_subdevice *s;
diff --git a/drivers/staging/comedi/drivers/unioxx5.c b/drivers/staging/comedi/drivers/unioxx5.c
index 04b7ec6..bf541d4 100644
--- a/drivers/staging/comedi/drivers/unioxx5.c
+++ b/drivers/staging/comedi/drivers/unioxx5.c
@@ -80,7 +80,7 @@
 	unsigned char usp_prev_cn_val[3];	/* previous channel value */
 } unioxx5_subd_priv;
 
-static int unioxx5_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int unioxx5_attach(struct comedi_device * dev, struct comedi_devconfig * it);
 static int unioxx5_subdev_write(struct comedi_device * dev, struct comedi_subdevice * subdev,
 	struct comedi_insn * insn, unsigned int * data);
 static int unioxx5_subdev_read(struct comedi_device * dev, struct comedi_subdevice * subdev,
@@ -111,7 +111,7 @@
 
 COMEDI_INITCLEANUP(unioxx5_driver);
 
-static int unioxx5_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int unioxx5_attach(struct comedi_device * dev, struct comedi_devconfig * it)
 {
 	int iobase, i, n_subd;
 	int id, num, ba;
diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c
index 692df7a..d0b59e9 100644
--- a/drivers/staging/comedi/drivers/usbdux.c
+++ b/drivers/staging/comedi/drivers/usbdux.c
@@ -2703,7 +2703,7 @@
 }
 
 /* is called when comedi-config is called */
-static int usbdux_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int usbdux_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	int ret;
 	int index;
diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c
index d1ea6ed..2fb64de 100644
--- a/drivers/staging/comedi/drivers/usbduxfast.c
+++ b/drivers/staging/comedi/drivers/usbduxfast.c
@@ -1715,7 +1715,7 @@
 /*
  * is called when comedi-config is called
  */
-static int usbduxfast_attach(struct comedi_device *dev, comedi_devconfig *it)
+static int usbduxfast_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	int ret;
 	int index;
