OSDN Git Service

staging: comedi: ni_tio: tidy up ni_gpct_device_{construct,destroy)()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 24 Jul 2014 17:14:51 +0000 (10:14 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 27 Jul 2014 18:16:48 +0000 (11:16 -0700)
For aesthetics, move these exported functions to the end of the file.

Tidy up the functions a bit and remove the BUG_ON when (num_counters == 0).

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_tio.c

index e49c71c..a65b55d 100644 (file)
@@ -186,52 +186,6 @@ static inline unsigned Gi_Gate_Select_Bits(unsigned gate_select)
        return (gate_select << Gi_Gate_Select_Shift) & Gi_Gate_Select_Mask;
 }
 
-struct ni_gpct_device *
-ni_gpct_device_construct(struct comedi_device *dev,
-                        void (*write_register)(struct ni_gpct *counter,
-                                               unsigned bits,
-                                               enum ni_gpct_register reg),
-                        unsigned (*read_register)(struct ni_gpct *counter,
-                                                  enum ni_gpct_register reg),
-                        enum ni_gpct_variant variant,
-                        unsigned num_counters)
-{
-       unsigned i;
-
-       struct ni_gpct_device *counter_dev =
-           kzalloc(sizeof(struct ni_gpct_device), GFP_KERNEL);
-       if (counter_dev == NULL)
-               return NULL;
-       counter_dev->dev = dev;
-       counter_dev->write_register = write_register;
-       counter_dev->read_register = read_register;
-       counter_dev->variant = variant;
-       spin_lock_init(&counter_dev->regs_lock);
-       BUG_ON(num_counters == 0);
-       counter_dev->counters =
-           kzalloc(sizeof(struct ni_gpct) * num_counters, GFP_KERNEL);
-       if (counter_dev->counters == NULL) {
-               kfree(counter_dev);
-               return NULL;
-       }
-       for (i = 0; i < num_counters; ++i) {
-               counter_dev->counters[i].counter_dev = counter_dev;
-               spin_lock_init(&counter_dev->counters[i].lock);
-       }
-       counter_dev->num_counters = num_counters;
-       return counter_dev;
-}
-EXPORT_SYMBOL_GPL(ni_gpct_device_construct);
-
-void ni_gpct_device_destroy(struct ni_gpct_device *counter_dev)
-{
-       if (counter_dev->counters == NULL)
-               return;
-       kfree(counter_dev->counters);
-       kfree(counter_dev);
-}
-EXPORT_SYMBOL_GPL(ni_gpct_device_destroy);
-
 static int
 ni_tio_second_gate_registers_present(const struct ni_gpct_device *counter_dev)
 {
@@ -1521,6 +1475,61 @@ int ni_tio_insn_write(struct comedi_device *dev,
 }
 EXPORT_SYMBOL_GPL(ni_tio_insn_write);
 
+struct ni_gpct_device *
+ni_gpct_device_construct(struct comedi_device *dev,
+                        void (*write_register)(struct ni_gpct *counter,
+                                               unsigned bits,
+                                               enum ni_gpct_register reg),
+                        unsigned (*read_register)(struct ni_gpct *counter,
+                                                  enum ni_gpct_register reg),
+                        enum ni_gpct_variant variant,
+                        unsigned num_counters)
+{
+       struct ni_gpct_device *counter_dev;
+       struct ni_gpct *counter;
+       unsigned i;
+
+       if (num_counters == 0)
+               return NULL;
+
+       counter_dev = kzalloc(sizeof(*counter_dev), GFP_KERNEL);
+       if (!counter_dev)
+               return NULL;
+
+       counter_dev->dev = dev;
+       counter_dev->write_register = write_register;
+       counter_dev->read_register = read_register;
+       counter_dev->variant = variant;
+
+       spin_lock_init(&counter_dev->regs_lock);
+
+       counter_dev->counters = kcalloc(num_counters, sizeof(*counter),
+                                       GFP_KERNEL);
+       if (!counter_dev->counters) {
+               kfree(counter_dev);
+               return NULL;
+       }
+
+       for (i = 0; i < num_counters; ++i) {
+               counter = &counter_dev->counters[i];
+               counter->counter_dev = counter_dev;
+               spin_lock_init(&counter->lock);
+       }
+       counter_dev->num_counters = num_counters;
+
+       return counter_dev;
+}
+EXPORT_SYMBOL_GPL(ni_gpct_device_construct);
+
+void ni_gpct_device_destroy(struct ni_gpct_device *counter_dev)
+{
+       if (!counter_dev->counters)
+               return;
+       kfree(counter_dev->counters);
+       kfree(counter_dev);
+}
+EXPORT_SYMBOL_GPL(ni_gpct_device_destroy);
+
 static int __init ni_tio_init_module(void)
 {
        return 0;