From ba98ab03f762696180227e015a13f1bac0a11f60 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 7 Sep 2012 17:41:37 -0700 Subject: [PATCH] staging: comedi: me4000: remove struct me4000_cnt_context The me4000_cnt_contect simply holds the unsigned long i/o addresses used to read/write the counter registers. Thes can be calculated as needed. Remove the struct and the associated field in the private data. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me4000.c | 67 +++++++++++---------------------- drivers/staging/comedi/drivers/me4000.h | 8 ---- 2 files changed, 22 insertions(+), 53 deletions(-) diff --git a/drivers/staging/comedi/drivers/me4000.c b/drivers/staging/comedi/drivers/me4000.c index bdc06036..081e509 100644 --- a/drivers/staging/comedi/drivers/me4000.c +++ b/drivers/staging/comedi/drivers/me4000.c @@ -221,7 +221,6 @@ static int init_board_info(struct comedi_device *dev, static int init_ao_context(struct comedi_device *dev); static int init_ai_context(struct comedi_device *dev); static int init_dio_context(struct comedi_device *dev); -static int init_cnt_context(struct comedi_device *dev); static int xilinx_download(struct comedi_device *dev); static int reset_board(struct comedi_device *dev); @@ -361,15 +360,6 @@ found: return result; } - /* Init counter context */ - result = init_cnt_context(dev); - if (result) { - printk(KERN_ERR - "comedi%d: me4000: me4000_probe(): " - "Cannot init cnt context\n", dev->minor); - return result; - } - /* Download the xilinx firmware */ result = xilinx_download(dev); if (result) { @@ -599,19 +589,6 @@ static int init_dio_context(struct comedi_device *dev) return 0; } -static int init_cnt_context(struct comedi_device *dev) -{ - info->cnt_context.ctrl_reg = info->timer_regbase + ME4000_CNT_CTRL_REG; - info->cnt_context.counter_0_reg = - info->timer_regbase + ME4000_CNT_COUNTER_0_REG; - info->cnt_context.counter_1_reg = - info->timer_regbase + ME4000_CNT_COUNTER_1_REG; - info->cnt_context.counter_2_reg = - info->timer_regbase + ME4000_CNT_COUNTER_2_REG; - - return 0; -} - #define FIRMWARE_NOT_AVAILABLE 1 #if FIRMWARE_NOT_AVAILABLE extern unsigned char *xilinx_firm; @@ -1907,19 +1884,19 @@ static int cnt_reset(struct comedi_device *dev, unsigned int channel) { switch (channel) { case 0: - outb(0x30, info->cnt_context.ctrl_reg); - outb(0x00, info->cnt_context.counter_0_reg); - outb(0x00, info->cnt_context.counter_0_reg); + outb(0x30, info->timer_regbase + ME4000_CNT_CTRL_REG); + outb(0x00, info->timer_regbase + ME4000_CNT_COUNTER_0_REG); + outb(0x00, info->timer_regbase + ME4000_CNT_COUNTER_0_REG); break; case 1: - outb(0x70, info->cnt_context.ctrl_reg); - outb(0x00, info->cnt_context.counter_1_reg); - outb(0x00, info->cnt_context.counter_1_reg); + outb(0x70, info->timer_regbase + ME4000_CNT_CTRL_REG); + outb(0x00, info->timer_regbase + ME4000_CNT_COUNTER_1_REG); + outb(0x00, info->timer_regbase + ME4000_CNT_COUNTER_1_REG); break; case 2: - outb(0xB0, info->cnt_context.ctrl_reg); - outb(0x00, info->cnt_context.counter_2_reg); - outb(0x00, info->cnt_context.counter_2_reg); + outb(0xB0, info->timer_regbase + ME4000_CNT_CTRL_REG); + outb(0x00, info->timer_regbase + ME4000_CNT_COUNTER_2_REG); + outb(0x00, info->timer_regbase + ME4000_CNT_COUNTER_2_REG); break; default: printk(KERN_ERR @@ -1981,7 +1958,7 @@ static int cnt_config(struct comedi_device *dev, unsigned int channel, /* Write the control word */ tmp |= 0x30; - outb(tmp, info->cnt_context.ctrl_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_CTRL_REG); return 0; } @@ -2050,21 +2027,21 @@ static int me4000_cnt_insn_read(struct comedi_device *dev, switch (insn->chanspec) { case 0: - tmp = inb(info->cnt_context.counter_0_reg); + tmp = inb(info->timer_regbase + ME4000_CNT_COUNTER_0_REG); data[0] = tmp; - tmp = inb(info->cnt_context.counter_0_reg); + tmp = inb(info->timer_regbase + ME4000_CNT_COUNTER_0_REG); data[0] |= tmp << 8; break; case 1: - tmp = inb(info->cnt_context.counter_1_reg); + tmp = inb(info->timer_regbase + ME4000_CNT_COUNTER_1_REG); data[0] = tmp; - tmp = inb(info->cnt_context.counter_1_reg); + tmp = inb(info->timer_regbase + ME4000_CNT_COUNTER_1_REG); data[0] |= tmp << 8; break; case 2: - tmp = inb(info->cnt_context.counter_2_reg); + tmp = inb(info->timer_regbase + ME4000_CNT_COUNTER_2_REG); data[0] = tmp; - tmp = inb(info->cnt_context.counter_2_reg); + tmp = inb(info->timer_regbase + ME4000_CNT_COUNTER_2_REG); data[0] |= tmp << 8; break; default: @@ -2098,21 +2075,21 @@ static int me4000_cnt_insn_write(struct comedi_device *dev, switch (insn->chanspec) { case 0: tmp = data[0] & 0xFF; - outb(tmp, info->cnt_context.counter_0_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_COUNTER_0_REG); tmp = (data[0] >> 8) & 0xFF; - outb(tmp, info->cnt_context.counter_0_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_COUNTER_0_REG); break; case 1: tmp = data[0] & 0xFF; - outb(tmp, info->cnt_context.counter_1_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_COUNTER_1_REG); tmp = (data[0] >> 8) & 0xFF; - outb(tmp, info->cnt_context.counter_1_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_COUNTER_1_REG); break; case 2: tmp = data[0] & 0xFF; - outb(tmp, info->cnt_context.counter_2_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_COUNTER_2_REG); tmp = (data[0] >> 8) & 0xFF; - outb(tmp, info->cnt_context.counter_2_reg); + outb(tmp, info->timer_regbase + ME4000_CNT_COUNTER_2_REG); break; default: printk(KERN_ERR diff --git a/drivers/staging/comedi/drivers/me4000.h b/drivers/staging/comedi/drivers/me4000.h index a631308..6c03d54 100644 --- a/drivers/staging/comedi/drivers/me4000.h +++ b/drivers/staging/comedi/drivers/me4000.h @@ -274,13 +274,6 @@ struct me4000_dio_context { unsigned long port_3_reg; }; -struct me4000_cnt_context { - unsigned long ctrl_reg; - unsigned long counter_0_reg; - unsigned long counter_1_reg; - unsigned long counter_2_reg; -}; - struct me4000_info { unsigned long plx_regbase; /* PLX configuration space base address */ unsigned long me4000_regbase; /* Base address of the ME4000 */ @@ -304,7 +297,6 @@ struct me4000_info { struct me4000_ai_context ai_context; /* Analog input specific context */ struct me4000_ao_context ao_context[4]; /* Vector with analog output specific context */ struct me4000_dio_context dio_context; /* Digital I/O specific context */ - struct me4000_cnt_context cnt_context; /* Counter specific context */ }; #define info ((struct me4000_info *)dev->private) -- 2.7.4