Staging: comedi: Remove comedi_subdevice typedef
[pandora-kernel.git] / drivers / staging / comedi / drivers / cb_pcidas.c
index 63c8a80..aa43146 100644 (file)
@@ -398,7 +398,7 @@ MODULE_DEVICE_TABLE(pci, cb_pcidas_pci_table);
 
 /* this structure is for data unique to this hardware driver.  If
    several hardware drivers keep similar information in this structure,
-   feel free to suggest moving the variable to the comedi_device struct.  */
+   feel free to suggest moving the variable to the struct comedi_device struct.  */
 typedef struct {
        /* would be useful for a PCI device */
        struct pci_dev *pci_dev;
@@ -415,8 +415,8 @@ typedef struct {
        volatile unsigned int adc_fifo_bits;    // bits to write to interupt/adcfifo register
        volatile unsigned int s5933_intcsr_bits;        // bits to write to amcc s5933 interrupt control/status register
        volatile unsigned int ao_control_bits;  // bits to write to ao control and status register
-       sampl_t ai_buffer[AI_BUFFER_SIZE];
-       sampl_t ao_buffer[AO_BUFFER_SIZE];
+       short ai_buffer[AI_BUFFER_SIZE];
+       short ao_buffer[AO_BUFFER_SIZE];
        // divisors of master clock for analog output pacing
        unsigned int ao_divisor1;
        unsigned int ao_divisor2;
@@ -440,8 +440,8 @@ typedef struct {
  * the board, and also about the kernel module that contains
  * the device code.
  */
-static int cb_pcidas_attach(comedi_device * dev, comedi_devconfig * it);
-static int cb_pcidas_detach(comedi_device * dev);
+static int cb_pcidas_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int cb_pcidas_detach(struct comedi_device * dev);
 static comedi_driver driver_cb_pcidas = {
       driver_name:"cb_pcidas",
       module:THIS_MODULE,
@@ -449,56 +449,56 @@ static comedi_driver driver_cb_pcidas = {
       detach:cb_pcidas_detach,
 };
 
-static int cb_pcidas_ai_rinsn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int ai_config_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int cb_pcidas_ao_nofifo_winsn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int cb_pcidas_ao_fifo_winsn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int cb_pcidas_ao_readback_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int cb_pcidas_ai_cmd(comedi_device * dev, comedi_subdevice * s);
-static int cb_pcidas_ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
+static int cb_pcidas_ai_rinsn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int ai_config_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int cb_pcidas_ao_nofifo_winsn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int cb_pcidas_ao_fifo_winsn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int cb_pcidas_ao_readback_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int cb_pcidas_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
+static int cb_pcidas_ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
        comedi_cmd * cmd);
-static int cb_pcidas_ao_cmd(comedi_device * dev, comedi_subdevice * s);
-static int cb_pcidas_ao_inttrig(comedi_device * dev, comedi_subdevice * subdev,
+static int cb_pcidas_ao_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
+static int cb_pcidas_ao_inttrig(struct comedi_device * dev, struct comedi_subdevice * subdev,
        unsigned int trig_num);
-static int cb_pcidas_ao_cmdtest(comedi_device * dev, comedi_subdevice * s,
+static int cb_pcidas_ao_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
        comedi_cmd * cmd);
 static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG);
-static void handle_ao_interrupt(comedi_device * dev, unsigned int status);
-static int cb_pcidas_cancel(comedi_device * dev, comedi_subdevice * s);
-static int cb_pcidas_ao_cancel(comedi_device * dev, comedi_subdevice * s);
-static void cb_pcidas_load_counters(comedi_device * dev, unsigned int *ns,
+static void handle_ao_interrupt(struct comedi_device * dev, unsigned int status);
+static int cb_pcidas_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
+static int cb_pcidas_ao_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
+static void cb_pcidas_load_counters(struct comedi_device * dev, unsigned int *ns,
        int round_flags);
-static int eeprom_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int caldac_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int caldac_write_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int trimpot_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int cb_pcidas_trimpot_write(comedi_device * dev, unsigned int channel,
-       lsampl_t value);
-static int trimpot_write_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int dac08_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int dac08_write(comedi_device * dev, lsampl_t value);
-static int dac08_write_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
-static int caldac_8800_write(comedi_device * dev, unsigned int address,
+static int eeprom_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int caldac_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int caldac_write_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int trimpot_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int cb_pcidas_trimpot_write(struct comedi_device * dev, unsigned int channel,
+       unsigned int value);
+static int trimpot_write_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int dac08_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int dac08_write(struct comedi_device * dev, unsigned int value);
+static int dac08_write_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data);
+static int caldac_8800_write(struct comedi_device * dev, unsigned int address,
        uint8_t value);
-static int trimpot_7376_write(comedi_device * dev, uint8_t value);
-static int trimpot_8402_write(comedi_device * dev, unsigned int channel,
+static int trimpot_7376_write(struct comedi_device * dev, uint8_t value);
+static int trimpot_8402_write(struct comedi_device * dev, unsigned int channel,
        uint8_t value);
-static int nvram_read(comedi_device * dev, unsigned int address,
+static int nvram_read(struct comedi_device * dev, unsigned int address,
        uint8_t * data);
 
-static inline unsigned int cal_enable_bits(comedi_device * dev)
+static inline unsigned int cal_enable_bits(struct comedi_device * dev)
 {
        return CAL_EN_BIT | CAL_SRC_BITS(devpriv->calibration_source);
 }
@@ -507,9 +507,9 @@ static inline unsigned int cal_enable_bits(comedi_device * dev)
  * Attach is called by the Comedi core to configure the driver
  * for a particular board.
  */
-static int cb_pcidas_attach(comedi_device * dev, comedi_devconfig * it)
+static int cb_pcidas_attach(struct comedi_device * dev, comedi_devconfig * it)
 {
-       comedi_subdevice *s;
+       struct comedi_subdevice *s;
        struct pci_dev *pcidev;
        int index;
        int i;
@@ -718,7 +718,7 @@ static int cb_pcidas_attach(comedi_device * dev, comedi_devconfig * it)
  * allocated by _attach().  dev->private and dev->subdevices are
  * deallocated automatically by the core.
  */
-static int cb_pcidas_detach(comedi_device * dev)
+static int cb_pcidas_detach(struct comedi_device * dev)
 {
        printk("comedi%d: cb_pcidas: remove\n", dev->minor);
 
@@ -752,8 +752,8 @@ static int cb_pcidas_detach(comedi_device * dev)
  * "instructions" read/write data in "one-shot" or "software-triggered"
  * mode.
  */
-static int cb_pcidas_ai_rinsn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int cb_pcidas_ai_rinsn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        int n, i;
        unsigned int bits;
@@ -804,10 +804,10 @@ static int cb_pcidas_ai_rinsn(comedi_device * dev, comedi_subdevice * s,
        return n;
 }
 
-static int ai_config_calibration_source(comedi_device * dev, lsampl_t * data)
+static int ai_config_calibration_source(struct comedi_device * dev, unsigned int * data)
 {
        static const int num_calibration_sources = 8;
-       lsampl_t source = data[1];
+       unsigned int source = data[1];
 
        if (source >= num_calibration_sources) {
                printk("invalid calibration source: %i\n", source);
@@ -819,8 +819,8 @@ static int ai_config_calibration_source(comedi_device * dev, lsampl_t * data)
        return 2;
 }
 
-static int ai_config_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int ai_config_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        int id = data[0];
 
@@ -836,8 +836,8 @@ static int ai_config_insn(comedi_device * dev, comedi_subdevice * s,
 }
 
 // analog output insn for pcidas-1000 and 1200 series
-static int cb_pcidas_ao_nofifo_winsn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int cb_pcidas_ao_nofifo_winsn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        int channel;
        unsigned long flags;
@@ -861,8 +861,8 @@ static int cb_pcidas_ao_nofifo_winsn(comedi_device * dev, comedi_subdevice * s,
 }
 
 // analog output insn for pcidas-1602 series
-static int cb_pcidas_ao_fifo_winsn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int cb_pcidas_ao_fifo_winsn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        int channel;
        unsigned long flags;
@@ -892,16 +892,16 @@ static int cb_pcidas_ao_fifo_winsn(comedi_device * dev, comedi_subdevice * s,
 
 // analog output readback insn
 // XXX loses track of analog output value back after an analog ouput command is executed
-static int cb_pcidas_ao_readback_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int cb_pcidas_ao_readback_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        data[0] = devpriv->ao_value[CR_CHAN(insn->chanspec)];
 
        return 1;
 }
 
-static int eeprom_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int eeprom_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        uint8_t nvram_data;
        int retval;
@@ -915,16 +915,16 @@ static int eeprom_read_insn(comedi_device * dev, comedi_subdevice * s,
        return 1;
 }
 
-static int caldac_write_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int caldac_write_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        const unsigned int channel = CR_CHAN(insn->chanspec);
 
        return caldac_8800_write(dev, channel, data[0]);
 }
 
-static int caldac_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int caldac_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        data[0] = devpriv->caldac_value[CR_CHAN(insn->chanspec)];
 
@@ -932,7 +932,7 @@ static int caldac_read_insn(comedi_device * dev, comedi_subdevice * s,
 }
 
 /* 1602/16 pregain offset */
-static int dac08_write(comedi_device * dev, lsampl_t value)
+static int dac08_write(struct comedi_device * dev, unsigned int value)
 {
        if (devpriv->dac08_value == value)
                return 1;
@@ -952,22 +952,22 @@ static int dac08_write(comedi_device * dev, lsampl_t value)
        return 1;
 }
 
-static int dac08_write_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int dac08_write_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        return dac08_write(dev, data[0]);
 }
 
-static int dac08_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int dac08_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        data[0] = devpriv->dac08_value;
 
        return 1;
 }
 
-static int cb_pcidas_trimpot_write(comedi_device * dev,
-       unsigned int channel, lsampl_t value)
+static int cb_pcidas_trimpot_write(struct comedi_device * dev,
+       unsigned int channel, unsigned int value)
 {
        if (devpriv->trimpot_value[channel] == value)
                return 1;
@@ -989,16 +989,16 @@ static int cb_pcidas_trimpot_write(comedi_device * dev,
        return 1;
 }
 
-static int trimpot_write_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int trimpot_write_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        unsigned int channel = CR_CHAN(insn->chanspec);
 
        return cb_pcidas_trimpot_write(dev, channel, data[0]);
 }
 
-static int trimpot_read_insn(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data)
+static int trimpot_read_insn(struct comedi_device * dev, struct comedi_subdevice * s,
+       comedi_insn * insn, unsigned int * data)
 {
        unsigned int channel = CR_CHAN(insn->chanspec);
 
@@ -1007,7 +1007,7 @@ static int trimpot_read_insn(comedi_device * dev, comedi_subdevice * s,
        return 1;
 }
 
-static int cb_pcidas_ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
+static int cb_pcidas_ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
        comedi_cmd * cmd)
 {
        int err = 0;
@@ -1162,7 +1162,7 @@ static int cb_pcidas_ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
        return 0;
 }
 
-static int cb_pcidas_ai_cmd(comedi_device * dev, comedi_subdevice * s)
+static int cb_pcidas_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s)
 {
        comedi_async *async = s->async;
        comedi_cmd *cmd = &async->cmd;
@@ -1249,7 +1249,7 @@ static int cb_pcidas_ai_cmd(comedi_device * dev, comedi_subdevice * s)
        return 0;
 }
 
-static int cb_pcidas_ao_cmdtest(comedi_device * dev, comedi_subdevice * s,
+static int cb_pcidas_ao_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
        comedi_cmd * cmd)
 {
        int err = 0;
@@ -1362,7 +1362,7 @@ static int cb_pcidas_ao_cmdtest(comedi_device * dev, comedi_subdevice * s,
        return 0;
 }
 
-static int cb_pcidas_ao_cmd(comedi_device * dev, comedi_subdevice * s)
+static int cb_pcidas_ao_cmd(struct comedi_device * dev, struct comedi_subdevice * s)
 {
        comedi_async *async = s->async;
        comedi_cmd *cmd = &async->cmd;
@@ -1425,7 +1425,7 @@ static int cb_pcidas_ao_cmd(comedi_device * dev, comedi_subdevice * s)
        return 0;
 }
 
-static int cb_pcidas_ao_inttrig(comedi_device * dev, comedi_subdevice * s,
+static int cb_pcidas_ao_inttrig(struct comedi_device * dev, struct comedi_subdevice * s,
        unsigned int trig_num)
 {
        unsigned int num_bytes, num_points = thisboard->fifo_size;
@@ -1441,8 +1441,8 @@ static int cb_pcidas_ao_inttrig(comedi_device * dev, comedi_subdevice * s,
                num_points = devpriv->ao_count;
 
        num_bytes = cfc_read_array_from_buffer(s, devpriv->ao_buffer,
-               num_points * sizeof(sampl_t));
-       num_points = num_bytes / sizeof(sampl_t);
+               num_points * sizeof(short));
+       num_points = num_bytes / sizeof(short);
 
        if (cmd->stop_src == TRIG_COUNT) {
                devpriv->ao_count -= num_points;
@@ -1476,8 +1476,8 @@ static int cb_pcidas_ao_inttrig(comedi_device * dev, comedi_subdevice * s,
 
 static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG)
 {
-       comedi_device *dev = (comedi_device *) d;
-       comedi_subdevice *s = dev->read_subdev;
+       struct comedi_device *dev = (struct comedi_device *) d;
+       struct comedi_subdevice *s = dev->read_subdev;
        comedi_async *async;
        int status, s5933_status;
        int half_fifo = thisboard->fifo_size / 2;
@@ -1530,7 +1530,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG)
                insw(devpriv->adc_fifo + ADCDATA, devpriv->ai_buffer,
                        num_samples);
                cfc_write_array_to_buffer(s, devpriv->ai_buffer,
-                       num_samples * sizeof(sampl_t));
+                       num_samples * sizeof(short));
                devpriv->count -= num_samples;
                if (async->cmd.stop_src == TRIG_COUNT && devpriv->count == 0) {
                        async->events |= COMEDI_CB_EOA;
@@ -1586,9 +1586,9 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG)
        return IRQ_HANDLED;
 }
 
-static void handle_ao_interrupt(comedi_device * dev, unsigned int status)
+static void handle_ao_interrupt(struct comedi_device * dev, unsigned int status)
 {
-       comedi_subdevice *s = dev->write_subdev;
+       struct comedi_subdevice *s = dev->write_subdev;
        comedi_async *async = s->async;
        comedi_cmd *cmd = &async->cmd;
        unsigned int half_fifo = thisboard->fifo_size / 2;
@@ -1623,8 +1623,8 @@ static void handle_ao_interrupt(comedi_device * dev, unsigned int status)
                        num_points = devpriv->ao_count;
                num_bytes =
                        cfc_read_array_from_buffer(s, devpriv->ao_buffer,
-                       num_points * sizeof(sampl_t));
-               num_points = num_bytes / sizeof(sampl_t);
+                       num_points * sizeof(short));
+               num_points = num_bytes / sizeof(short);
 
                if (async->cmd.stop_src == TRIG_COUNT) {
                        devpriv->ao_count -= num_points;
@@ -1643,7 +1643,7 @@ static void handle_ao_interrupt(comedi_device * dev, unsigned int status)
 }
 
 // cancel analog input command
-static int cb_pcidas_cancel(comedi_device * dev, comedi_subdevice * s)
+static int cb_pcidas_cancel(struct comedi_device * dev, struct comedi_subdevice * s)
 {
        unsigned long flags;
 
@@ -1662,7 +1662,7 @@ static int cb_pcidas_cancel(comedi_device * dev, comedi_subdevice * s)
 }
 
 // cancel analog output command
-static int cb_pcidas_ao_cancel(comedi_device * dev, comedi_subdevice * s)
+static int cb_pcidas_ao_cancel(struct comedi_device * dev, struct comedi_subdevice * s)
 {
        unsigned long flags;
 
@@ -1679,7 +1679,7 @@ static int cb_pcidas_ao_cancel(comedi_device * dev, comedi_subdevice * s)
        return 0;
 }
 
-static void cb_pcidas_load_counters(comedi_device * dev, unsigned int *ns,
+static void cb_pcidas_load_counters(struct comedi_device * dev, unsigned int *ns,
        int rounding_flags)
 {
        i8253_cascade_ns_to_timer_2div(TIMER_BASE, &(devpriv->divisor1),
@@ -1692,7 +1692,7 @@ static void cb_pcidas_load_counters(comedi_device * dev, unsigned int *ns,
                devpriv->divisor2, 2);
 }
 
-static void write_calibration_bitstream(comedi_device * dev,
+static void write_calibration_bitstream(struct comedi_device * dev,
        unsigned int register_bits, unsigned int bitstream,
        unsigned int bitstream_length)
 {
@@ -1709,7 +1709,7 @@ static void write_calibration_bitstream(comedi_device * dev,
        }
 }
 
-static int caldac_8800_write(comedi_device * dev, unsigned int address,
+static int caldac_8800_write(struct comedi_device * dev, unsigned int address,
        uint8_t value)
 {
        static const int num_caldac_channels = 8;
@@ -1739,7 +1739,7 @@ static int caldac_8800_write(comedi_device * dev, unsigned int address,
        return 1;
 }
 
-static int trimpot_7376_write(comedi_device * dev, uint8_t value)
+static int trimpot_7376_write(struct comedi_device * dev, uint8_t value)
 {
        static const int bitstream_length = 7;
        unsigned int bitstream = value & 0x7f;
@@ -1762,7 +1762,7 @@ static int trimpot_7376_write(comedi_device * dev, uint8_t value)
 /* For 1602/16 only
  * ch 0 : adc gain
  * ch 1 : adc postgain offset */
-static int trimpot_8402_write(comedi_device * dev, unsigned int channel,
+static int trimpot_8402_write(struct comedi_device * dev, unsigned int channel,
        uint8_t value)
 {
        static const int bitstream_length = 10;
@@ -1798,7 +1798,7 @@ static int wait_for_nvram_ready(unsigned long s5933_base_addr)
        return -1;
 }
 
-static int nvram_read(comedi_device * dev, unsigned int address, uint8_t * data)
+static int nvram_read(struct comedi_device * dev, unsigned int address, uint8_t * data)
 {
        unsigned long iobase = devpriv->s5933_config;