diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/comedi/drivers/comedi_parport.c | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/drivers/staging/comedi/drivers/comedi_parport.c b/drivers/staging/comedi/drivers/comedi_parport.c index 9530c47806cb..ba838fffa29e 100644 --- a/drivers/staging/comedi/drivers/comedi_parport.c +++ b/drivers/staging/comedi/drivers/comedi_parport.c | |||
@@ -90,26 +90,26 @@ pin, which can be used to wake up tasks. | |||
90 | #define PARPORT_B 1 | 90 | #define PARPORT_B 1 |
91 | #define PARPORT_C 2 | 91 | #define PARPORT_C 2 |
92 | 92 | ||
93 | static int parport_attach(comedi_device * dev, comedi_devconfig * it); | 93 | static int parport_attach(comedi_device *dev, comedi_devconfig *it); |
94 | static int parport_detach(comedi_device * dev); | 94 | static int parport_detach(comedi_device *dev); |
95 | static comedi_driver driver_parport = { | 95 | static comedi_driver driver_parport = { |
96 | driver_name:"comedi_parport", | 96 | .driver_name = "comedi_parport", |
97 | module:THIS_MODULE, | 97 | .module = THIS_MODULE, |
98 | attach:parport_attach, | 98 | .attach = parport_attach, |
99 | detach:parport_detach, | 99 | .detach = parport_detach, |
100 | }; | 100 | }; |
101 | 101 | ||
102 | COMEDI_INITCLEANUP(driver_parport); | 102 | COMEDI_INITCLEANUP(driver_parport); |
103 | 103 | ||
104 | typedef struct parport_private_struct { | 104 | struct parport_private { |
105 | unsigned int a_data; | 105 | unsigned int a_data; |
106 | unsigned int c_data; | 106 | unsigned int c_data; |
107 | int enable_irq; | 107 | int enable_irq; |
108 | } parport_private; | 108 | }; |
109 | #define devpriv ((parport_private *)(dev->private)) | 109 | #define devpriv ((struct parport_private *)(dev->private)) |
110 | 110 | ||
111 | static int parport_insn_a(comedi_device * dev, comedi_subdevice * s, | 111 | static int parport_insn_a(comedi_device *dev, comedi_subdevice *s, |
112 | comedi_insn * insn, lsampl_t * data) | 112 | comedi_insn *insn, lsampl_t *data) |
113 | { | 113 | { |
114 | if (data[0]) { | 114 | if (data[0]) { |
115 | devpriv->a_data &= ~data[0]; | 115 | devpriv->a_data &= ~data[0]; |
@@ -123,8 +123,8 @@ static int parport_insn_a(comedi_device * dev, comedi_subdevice * s, | |||
123 | return 2; | 123 | return 2; |
124 | } | 124 | } |
125 | 125 | ||
126 | static int parport_insn_config_a(comedi_device * dev, comedi_subdevice * s, | 126 | static int parport_insn_config_a(comedi_device *dev, comedi_subdevice *s, |
127 | comedi_insn * insn, lsampl_t * data) | 127 | comedi_insn *insn, lsampl_t *data) |
128 | { | 128 | { |
129 | if (data[0]) { | 129 | if (data[0]) { |
130 | s->io_bits = 0xff; | 130 | s->io_bits = 0xff; |
@@ -138,11 +138,12 @@ static int parport_insn_config_a(comedi_device * dev, comedi_subdevice * s, | |||
138 | return 1; | 138 | return 1; |
139 | } | 139 | } |
140 | 140 | ||
141 | static int parport_insn_b(comedi_device * dev, comedi_subdevice * s, | 141 | static int parport_insn_b(comedi_device *dev, comedi_subdevice *s, |
142 | comedi_insn * insn, lsampl_t * data) | 142 | comedi_insn *insn, lsampl_t *data) |
143 | { | 143 | { |
144 | if (data[0]) { | 144 | if (data[0]) { |
145 | // should writes be ignored? | 145 | /* should writes be ignored? */ |
146 | /* anyone??? */ | ||
146 | } | 147 | } |
147 | 148 | ||
148 | data[1] = (inb(dev->iobase + PARPORT_B) >> 3); | 149 | data[1] = (inb(dev->iobase + PARPORT_B) >> 3); |
@@ -150,8 +151,8 @@ static int parport_insn_b(comedi_device * dev, comedi_subdevice * s, | |||
150 | return 2; | 151 | return 2; |
151 | } | 152 | } |
152 | 153 | ||
153 | static int parport_insn_c(comedi_device * dev, comedi_subdevice * s, | 154 | static int parport_insn_c(comedi_device *dev, comedi_subdevice *s, |
154 | comedi_insn * insn, lsampl_t * data) | 155 | comedi_insn *insn, lsampl_t *data) |
155 | { | 156 | { |
156 | data[0] &= 0x0f; | 157 | data[0] &= 0x0f; |
157 | if (data[0]) { | 158 | if (data[0]) { |
@@ -166,8 +167,8 @@ static int parport_insn_c(comedi_device * dev, comedi_subdevice * s, | |||
166 | return 2; | 167 | return 2; |
167 | } | 168 | } |
168 | 169 | ||
169 | static int parport_intr_insn(comedi_device * dev, comedi_subdevice * s, | 170 | static int parport_intr_insn(comedi_device *dev, comedi_subdevice *s, |
170 | comedi_insn * insn, lsampl_t * data) | 171 | comedi_insn *insn, lsampl_t *data) |
171 | { | 172 | { |
172 | if (insn->n < 1) | 173 | if (insn->n < 1) |
173 | return -EINVAL; | 174 | return -EINVAL; |
@@ -176,8 +177,8 @@ static int parport_intr_insn(comedi_device * dev, comedi_subdevice * s, | |||
176 | return 2; | 177 | return 2; |
177 | } | 178 | } |
178 | 179 | ||
179 | static int parport_intr_cmdtest(comedi_device * dev, comedi_subdevice * s, | 180 | static int parport_intr_cmdtest(comedi_device *dev, comedi_subdevice *s, |
180 | comedi_cmd * cmd) | 181 | comedi_cmd *cmd) |
181 | { | 182 | { |
182 | int err = 0; | 183 | int err = 0; |
183 | int tmp; | 184 | int tmp; |
@@ -251,7 +252,7 @@ static int parport_intr_cmdtest(comedi_device * dev, comedi_subdevice * s, | |||
251 | return 0; | 252 | return 0; |
252 | } | 253 | } |
253 | 254 | ||
254 | static int parport_intr_cmd(comedi_device * dev, comedi_subdevice * s) | 255 | static int parport_intr_cmd(comedi_device *dev, comedi_subdevice *s) |
255 | { | 256 | { |
256 | devpriv->c_data |= 0x10; | 257 | devpriv->c_data |= 0x10; |
257 | outb(devpriv->c_data, dev->iobase + PARPORT_C); | 258 | outb(devpriv->c_data, dev->iobase + PARPORT_C); |
@@ -261,9 +262,9 @@ static int parport_intr_cmd(comedi_device * dev, comedi_subdevice * s) | |||
261 | return 0; | 262 | return 0; |
262 | } | 263 | } |
263 | 264 | ||
264 | static int parport_intr_cancel(comedi_device * dev, comedi_subdevice * s) | 265 | static int parport_intr_cancel(comedi_device *dev, comedi_subdevice *s) |
265 | { | 266 | { |
266 | printk("parport_intr_cancel()\n"); | 267 | printk(KERN_DEBUG "parport_intr_cancel()\n"); |
267 | 268 | ||
268 | devpriv->c_data &= ~0x10; | 269 | devpriv->c_data &= ~0x10; |
269 | outb(devpriv->c_data, dev->iobase + PARPORT_C); | 270 | outb(devpriv->c_data, dev->iobase + PARPORT_C); |
@@ -279,7 +280,7 @@ static irqreturn_t parport_interrupt(int irq, void *d PT_REGS_ARG) | |||
279 | comedi_subdevice *s = dev->subdevices + 3; | 280 | comedi_subdevice *s = dev->subdevices + 3; |
280 | 281 | ||
281 | if (!devpriv->enable_irq) { | 282 | if (!devpriv->enable_irq) { |
282 | printk("comedi_parport: bogus irq, ignored\n"); | 283 | printk(KERN_ERR "comedi_parport: bogus irq, ignored\n"); |
283 | return IRQ_NONE; | 284 | return IRQ_NONE; |
284 | } | 285 | } |
285 | 286 | ||
@@ -290,7 +291,7 @@ static irqreturn_t parport_interrupt(int irq, void *d PT_REGS_ARG) | |||
290 | return IRQ_HANDLED; | 291 | return IRQ_HANDLED; |
291 | } | 292 | } |
292 | 293 | ||
293 | static int parport_attach(comedi_device * dev, comedi_devconfig * it) | 294 | static int parport_attach(comedi_device *dev, comedi_devconfig *it) |
294 | { | 295 | { |
295 | int ret; | 296 | int ret; |
296 | unsigned int irq; | 297 | unsigned int irq; |
@@ -298,7 +299,7 @@ static int parport_attach(comedi_device * dev, comedi_devconfig * it) | |||
298 | comedi_subdevice *s; | 299 | comedi_subdevice *s; |
299 | 300 | ||
300 | iobase = it->options[0]; | 301 | iobase = it->options[0]; |
301 | printk("comedi%d: parport: 0x%04lx ", dev->minor, iobase); | 302 | printk(KERN_INFO "comedi%d: parport: 0x%04lx ", dev->minor, iobase); |
302 | if (!request_region(iobase, PARPORT_SIZE, "parport (comedi)")) { | 303 | if (!request_region(iobase, PARPORT_SIZE, "parport (comedi)")) { |
303 | printk("I/O port conflict\n"); | 304 | printk("I/O port conflict\n"); |
304 | return -EIO; | 305 | return -EIO; |
@@ -318,9 +319,11 @@ static int parport_attach(comedi_device * dev, comedi_devconfig * it) | |||
318 | } | 319 | } |
319 | dev->board_name = "parport"; | 320 | dev->board_name = "parport"; |
320 | 321 | ||
321 | if ((ret = alloc_subdevices(dev, 4)) < 0) | 322 | ret = alloc_subdevices(dev, 4); |
323 | if (ret < 0) | ||
322 | return ret; | 324 | return ret; |
323 | if ((ret = alloc_private(dev, sizeof(parport_private))) < 0) | 325 | ret = alloc_private(dev, sizeof(struct parport_private)); |
326 | if (ret < 0) | ||
324 | return ret; | 327 | return ret; |
325 | 328 | ||
326 | s = dev->subdevices + 0; | 329 | s = dev->subdevices + 0; |
@@ -373,7 +376,7 @@ static int parport_attach(comedi_device * dev, comedi_devconfig * it) | |||
373 | return 1; | 376 | return 1; |
374 | } | 377 | } |
375 | 378 | ||
376 | static int parport_detach(comedi_device * dev) | 379 | static int parport_detach(comedi_device *dev) |
377 | { | 380 | { |
378 | printk("comedi%d: parport: remove\n", dev->minor); | 381 | printk("comedi%d: parport: remove\n", dev->minor); |
379 | 382 | ||