aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi
diff options
context:
space:
mode:
authorGustavo Silva <silvagustavosilva@gmail.com>2010-06-16 01:17:52 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-06-17 18:54:24 -0400
commit4c68fb42c2a39b89daca2b7175eb93ffe6860da4 (patch)
treef2df8f0d8212dd969af003cdddcb504d096f3e49 /drivers/staging/comedi
parent8f4e80af3aa509902bd2319c3b5512580f64868f (diff)
Staging: comedi: drivers: fix coding style issues in pcl816.c
This is a patch to the pcl816.c file that fixes up the following issues: ERROR: code indent should use tabs where possible x 2 WARNING: line over 80 characters x 34 WARNING: please, no space before tabs x 1 WARNING: braces {} are not necessary for single statement blocks x 6 WARNING: printk() should include KERN_ facility level x 15 WARNING: braces {} are not necessary for any arm of this statement x 1 Signed-off-by: Gustavo Silva <silvagustavo@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r--drivers/staging/comedi/drivers/pcl816.c223
1 files changed, 140 insertions, 83 deletions
diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c
index a84b942c5a9..3d0f018faa6 100644
--- a/drivers/staging/comedi/drivers/pcl816.c
+++ b/drivers/staging/comedi/drivers/pcl816.c
@@ -2,7 +2,7 @@
2 comedi/drivers/pcl816.c 2 comedi/drivers/pcl816.c
3 3
4 Author: Juan Grigera <juan@grigera.com.ar> 4 Author: Juan Grigera <juan@grigera.com.ar>
5 based on pcl818 by Michal Dobes <dobes@tesnet.cz> and bits of pcl812 5 based on pcl818 by Michal Dobes <dobes@tesnet.cz> and bits of pcl812
6 6
7 hardware driver for Advantech cards: 7 hardware driver for Advantech cards:
8 card: PCL-816, PCL814B 8 card: PCL-816, PCL814B
@@ -28,7 +28,7 @@ Configuration Options:
28 [1] - IRQ (0=disable, 2, 3, 4, 5, 6, 7) 28 [1] - IRQ (0=disable, 2, 3, 4, 5, 6, 7)
29 [2] - DMA (0=disable, 1, 3) 29 [2] - DMA (0=disable, 1, 3)
30 [3] - 0, 10=10MHz clock for 8254 30 [3] - 0, 10=10MHz clock for 8254
31 1= 1MHz clock for 8254 31 1= 1MHz clock for 8254
32 32
33*/ 33*/
34 34
@@ -85,7 +85,7 @@ Configuration Options:
85#define INT_TYPE_AI3_DMA_RTC 10 85#define INT_TYPE_AI3_DMA_RTC 10
86 86
87/* RTC stuff... */ 87/* RTC stuff... */
88#define RTC_IRQ 8 88#define RTC_IRQ 8
89#define RTC_IO_EXTENT 0x10 89#define RTC_IO_EXTENT 0x10
90#endif 90#endif
91 91
@@ -264,7 +264,8 @@ static int pcl816_ai_insn_read(struct comedi_device *dev,
264 264
265 /* Set the input channel */ 265 /* Set the input channel */
266 outb(CR_CHAN(insn->chanspec) & 0xf, dev->iobase + PCL816_MUX); 266 outb(CR_CHAN(insn->chanspec) & 0xf, dev->iobase + PCL816_MUX);
267 outb(CR_RANGE(insn->chanspec), dev->iobase + PCL816_RANGE); /* select gain */ 267 /* select gain */
268 outb(CR_RANGE(insn->chanspec), dev->iobase + PCL816_RANGE);
268 269
269 for (n = 0; n < insn->n; n++) { 270 for (n = 0; n < insn->n; n++) {
270 271
@@ -279,8 +280,8 @@ static int pcl816_ai_insn_read(struct comedi_device *dev,
279 ((inb(dev->iobase + 280 ((inb(dev->iobase +
280 PCL816_AD_HI) << 8) | 281 PCL816_AD_HI) << 8) |
281 (inb(dev->iobase + PCL816_AD_LO))); 282 (inb(dev->iobase + PCL816_AD_LO)));
282 283 /* clear INT (conversion end) flag */
283 outb(0, dev->iobase + PCL816_CLRINT); /* clear INT (conversion end) flag */ 284 outb(0, dev->iobase + PCL816_CLRINT);
284 break; 285 break;
285 } 286 }
286 udelay(1); 287 udelay(1);
@@ -289,7 +290,8 @@ static int pcl816_ai_insn_read(struct comedi_device *dev,
289 if (!timeout) { 290 if (!timeout) {
290 comedi_error(dev, "A/D insn timeout\n"); 291 comedi_error(dev, "A/D insn timeout\n");
291 data[0] = 0; 292 data[0] = 0;
292 outb(0, dev->iobase + PCL816_CLRINT); /* clear INT (conversion end) flag */ 293 /* clear INT (conversion end) flag */
294 outb(0, dev->iobase + PCL816_CLRINT);
293 return -EIO; 295 return -EIO;
294 } 296 }
295 297
@@ -343,7 +345,8 @@ static irqreturn_t interrupt_pcl816_ai_mode13_int(int irq, void *d)
343 } 345 }
344 346
345 if (!devpriv->ai_neverending) 347 if (!devpriv->ai_neverending)
346 if (devpriv->ai_act_scan >= devpriv->ai_scans) { /* all data sampled */ 348 /* all data sampled */
349 if (devpriv->ai_act_scan >= devpriv->ai_scans) {
347 /* all data sampled */ 350 /* all data sampled */
348 pcl816_ai_cancel(dev, s); 351 pcl816_ai_cancel(dev, s);
349 s->async->events |= COMEDI_CB_EOA; 352 s->async->events |= COMEDI_CB_EOA;
@@ -380,7 +383,8 @@ static void transfer_from_dma_buf(struct comedi_device *dev,
380 } 383 }
381 384
382 if (!devpriv->ai_neverending) 385 if (!devpriv->ai_neverending)
383 if (devpriv->ai_act_scan >= devpriv->ai_scans) { /* all data sampled */ 386 /* all data sampled */
387 if (devpriv->ai_act_scan >= devpriv->ai_scans) {
384 pcl816_ai_cancel(dev, s); 388 pcl816_ai_cancel(dev, s);
385 s->async->events |= COMEDI_CB_EOA; 389 s->async->events |= COMEDI_CB_EOA;
386 s->async->events |= COMEDI_CB_BLOCK; 390 s->async->events |= COMEDI_CB_BLOCK;
@@ -402,7 +406,8 @@ static irqreturn_t interrupt_pcl816_ai_mode13_dma(int irq, void *d)
402 disable_dma(devpriv->dma); 406 disable_dma(devpriv->dma);
403 this_dma_buf = devpriv->next_dma_buf; 407 this_dma_buf = devpriv->next_dma_buf;
404 408
405 if ((devpriv->dma_runs_to_end > -1) || devpriv->ai_neverending) { /* switch dma bufs */ 409 /* switch dma bufs */
410 if ((devpriv->dma_runs_to_end > -1) || devpriv->ai_neverending) {
406 411
407 devpriv->next_dma_buf = 1 - devpriv->next_dma_buf; 412 devpriv->next_dma_buf = 1 - devpriv->next_dma_buf;
408 set_dma_mode(devpriv->dma, DMA_MODE_READ); 413 set_dma_mode(devpriv->dma, DMA_MODE_READ);
@@ -478,14 +483,14 @@ static irqreturn_t interrupt_pcl816(int irq, void *d)
478*/ 483*/
479static void pcl816_cmdtest_out(int e, struct comedi_cmd *cmd) 484static void pcl816_cmdtest_out(int e, struct comedi_cmd *cmd)
480{ 485{
481 printk("pcl816 e=%d startsrc=%x scansrc=%x convsrc=%x\n", e, 486 printk(KERN_INFO "pcl816 e=%d startsrc=%x scansrc=%x convsrc=%x\n", e,
482 cmd->start_src, cmd->scan_begin_src, cmd->convert_src); 487 cmd->start_src, cmd->scan_begin_src, cmd->convert_src);
483 printk("pcl816 e=%d startarg=%d scanarg=%d convarg=%d\n", e, 488 printk(KERN_INFO "pcl816 e=%d startarg=%d scanarg=%d convarg=%d\n", e,
484 cmd->start_arg, cmd->scan_begin_arg, cmd->convert_arg); 489 cmd->start_arg, cmd->scan_begin_arg, cmd->convert_arg);
485 printk("pcl816 e=%d stopsrc=%x scanend=%x\n", e, cmd->stop_src, 490 printk(KERN_INFO "pcl816 e=%d stopsrc=%x scanend=%x\n", e,
486 cmd->scan_end_src); 491 cmd->stop_src, cmd->scan_end_src);
487 printk("pcl816 e=%d stoparg=%d scanendarg=%d chanlistlen=%d\n", e, 492 printk(KERN_INFO "pcl816 e=%d stoparg=%d scanendarg=%d chanlistlen=%d\n",
488 cmd->stop_arg, cmd->scan_end_arg, cmd->chanlist_len); 493 e, cmd->stop_arg, cmd->scan_end_arg, cmd->chanlist_len);
489} 494}
490 495
491/* 496/*
@@ -497,8 +502,9 @@ static int pcl816_ai_cmdtest(struct comedi_device *dev,
497 int err = 0; 502 int err = 0;
498 int tmp, divisor1 = 0, divisor2 = 0; 503 int tmp, divisor1 = 0, divisor2 = 0;
499 504
500 DEBUG(printk("pcl816 pcl812_ai_cmdtest\n"); pcl816_cmdtest_out(-1, cmd); 505 DEBUG(printk(KERN_INFO "pcl816 pcl812_ai_cmdtest\n");
501 ); 506 pcl816_cmdtest_out(-1, cmd);
507 );
502 508
503 /* step 1: make sure trigger sources are trivially valid */ 509 /* step 1: make sure trigger sources are trivially valid */
504 tmp = cmd->start_src; 510 tmp = cmd->start_src;
@@ -526,11 +532,14 @@ static int pcl816_ai_cmdtest(struct comedi_device *dev,
526 if (!cmd->stop_src || tmp != cmd->stop_src) 532 if (!cmd->stop_src || tmp != cmd->stop_src)
527 err++; 533 err++;
528 534
529 if (err) { 535 if (err)
530 return 1; 536 return 1;
531 }
532 537
533 /* step 2: make sure trigger sources are unique and mutually compatible */ 538
539 /*
540 * step 2: make sure trigger sources
541 * are unique and mutually compatible
542 */
534 543
535 if (cmd->start_src != TRIG_NOW) { 544 if (cmd->start_src != TRIG_NOW) {
536 cmd->start_src = TRIG_NOW; 545 cmd->start_src = TRIG_NOW;
@@ -555,9 +564,9 @@ static int pcl816_ai_cmdtest(struct comedi_device *dev,
555 if (cmd->stop_src != TRIG_NONE && cmd->stop_src != TRIG_COUNT) 564 if (cmd->stop_src != TRIG_NONE && cmd->stop_src != TRIG_COUNT)
556 err++; 565 err++;
557 566
558 if (err) { 567 if (err)
559 return 2; 568 return 2;
560 } 569
561 570
562 /* step 3: make sure arguments are trivially compatible */ 571 /* step 3: make sure arguments are trivially compatible */
563 if (cmd->start_arg != 0) { 572 if (cmd->start_arg != 0) {
@@ -597,9 +606,9 @@ static int pcl816_ai_cmdtest(struct comedi_device *dev,
597 } 606 }
598 } 607 }
599 608
600 if (err) { 609 if (err)
601 return 3; 610 return 3;
602 } 611
603 612
604 /* step 4: fix up any arguments */ 613 /* step 4: fix up any arguments */
605 if (cmd->convert_src == TRIG_TIMER) { 614 if (cmd->convert_src == TRIG_TIMER) {
@@ -614,9 +623,9 @@ static int pcl816_ai_cmdtest(struct comedi_device *dev,
614 err++; 623 err++;
615 } 624 }
616 625
617 if (err) { 626 if (err)
618 return 4; 627 return 4;
619 } 628
620 629
621 /* step 5: complain about special chanlist considerations */ 630 /* step 5: complain about special chanlist considerations */
622 631
@@ -654,7 +663,9 @@ static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
654 i8253_cascade_ns_to_timer(this_board->i8254_osc_base, &divisor1, 663 i8253_cascade_ns_to_timer(this_board->i8254_osc_base, &divisor1,
655 &divisor2, &cmd->convert_arg, 664 &divisor2, &cmd->convert_arg,
656 cmd->flags & TRIG_ROUND_MASK); 665 cmd->flags & TRIG_ROUND_MASK);
657 if (divisor1 == 1) { /* PCL816 crash if any divisor is set to 1 */ 666
667 /* PCL816 crash if any divisor is set to 1 */
668 if (divisor1 == 1) {
658 divisor1 = 2; 669 divisor1 = 2;
659 divisor2 /= 2; 670 divisor2 /= 2;
660 } 671 }
@@ -687,8 +698,10 @@ static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
687 devpriv->ai_neverending = 1; 698 devpriv->ai_neverending = 1;
688 } 699 }
689 700
690 if ((cmd->flags & TRIG_WAKE_EOS)) { /* don't we want wake up every scan? */ 701 /* don't we want wake up every scan? */
691 printk("pl816: You wankt WAKE_EOS but I dont want handle it"); 702 if ((cmd->flags & TRIG_WAKE_EOS)) {
703 printk(KERN_INFO
704 "pl816: You wankt WAKE_EOS but I dont want handle it");
692 /* devpriv->ai_eos=1; */ 705 /* devpriv->ai_eos=1; */
693 /* if (devpriv->ai_n_chan==1) */ 706 /* if (devpriv->ai_n_chan==1) */
694 /* devpriv->dma=0; // DMA is useless for this situation */ 707 /* devpriv->dma=0; // DMA is useless for this situation */
@@ -697,9 +710,17 @@ static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
697 if (devpriv->dma) { 710 if (devpriv->dma) {
698 bytes = devpriv->hwdmasize[0]; 711 bytes = devpriv->hwdmasize[0];
699 if (!devpriv->ai_neverending) { 712 if (!devpriv->ai_neverending) {
700 bytes = s->async->cmd.chanlist_len * s->async->cmd.chanlist_len * sizeof(short); /* how many */ 713 /* how many */
701 devpriv->dma_runs_to_end = bytes / devpriv->hwdmasize[0]; /* how many DMA pages we must fill */ 714 bytes = s->async->cmd.chanlist_len *
702 devpriv->last_dma_run = bytes % devpriv->hwdmasize[0]; /* on last dma transfer must be moved */ 715 s->async->cmd.chanlist_len *
716 sizeof(short);
717
718 /* how many DMA pages we must fill */
719 devpriv->dma_runs_to_end = bytes /
720 devpriv->hwdmasize[0];
721
722 /* on last dma transfer must be moved */
723 devpriv->last_dma_run = bytes % devpriv->hwdmasize[0];
703 devpriv->dma_runs_to_end--; 724 devpriv->dma_runs_to_end--;
704 if (devpriv->dma_runs_to_end >= 0) 725 if (devpriv->dma_runs_to_end >= 0)
705 bytes = devpriv->hwdmasize[0]; 726 bytes = devpriv->hwdmasize[0];
@@ -722,14 +743,22 @@ static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
722 switch (cmd->convert_src) { 743 switch (cmd->convert_src) {
723 case TRIG_TIMER: 744 case TRIG_TIMER:
724 devpriv->int816_mode = INT_TYPE_AI1_DMA; 745 devpriv->int816_mode = INT_TYPE_AI1_DMA;
725 outb(0x32, dev->iobase + PCL816_CONTROL); /* Pacer+IRQ+DMA */ 746
726 outb(dmairq, dev->iobase + PCL816_STATUS); /* write irq and DMA to card */ 747 /* Pacer+IRQ+DMA */
748 outb(0x32, dev->iobase + PCL816_CONTROL);
749
750 /* write irq and DMA to card */
751 outb(dmairq, dev->iobase + PCL816_STATUS);
727 break; 752 break;
728 753
729 default: 754 default:
730 devpriv->int816_mode = INT_TYPE_AI3_DMA; 755 devpriv->int816_mode = INT_TYPE_AI3_DMA;
731 outb(0x34, dev->iobase + PCL816_CONTROL); /* Ext trig+IRQ+DMA */ 756
732 outb(dmairq, dev->iobase + PCL816_STATUS); /* write irq to card */ 757 /* Ext trig+IRQ+DMA */
758 outb(0x34, dev->iobase + PCL816_CONTROL);
759
760 /* write irq to card */
761 outb(dmairq, dev->iobase + PCL816_STATUS);
733 break; 762 break;
734 } 763 }
735 764
@@ -758,7 +787,8 @@ static int pcl816_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s)
758 return 0; 787 return 0;
759 } 788 }
760 789
761 top1 = devpriv->hwdmasize[0] - top1; /* where is now DMA in buffer */ 790 /* where is now DMA in buffer */
791 top1 = devpriv->hwdmasize[0] - top1;
762 top1 >>= 1; /* sample position */ 792 top1 >>= 1; /* sample position */
763 top2 = top1 - devpriv->ai_poll_ptr; 793 top2 = top1 - devpriv->ai_poll_ptr;
764 if (top2 < 1) { /* no new samples */ 794 if (top2 < 1) { /* no new samples */
@@ -798,16 +828,23 @@ static int pcl816_ai_cancel(struct comedi_device *dev,
798 disable_dma(devpriv->dma); 828 disable_dma(devpriv->dma);
799 case INT_TYPE_AI1_INT: 829 case INT_TYPE_AI1_INT:
800 case INT_TYPE_AI3_INT: 830 case INT_TYPE_AI3_INT:
801 outb(inb(dev->iobase + PCL816_CONTROL) & 0x73, dev->iobase + PCL816_CONTROL); /* Stop A/D */ 831 outb(inb(dev->iobase + PCL816_CONTROL) & 0x73,
832 dev->iobase + PCL816_CONTROL); /* Stop A/D */
802 udelay(1); 833 udelay(1);
803 outb(0, dev->iobase + PCL816_CONTROL); /* Stop A/D */ 834 outb(0, dev->iobase + PCL816_CONTROL); /* Stop A/D */
804 outb(0xb0, dev->iobase + PCL816_CTRCTL); /* Stop pacer */ 835
836 /* Stop pacer */
837 outb(0xb0, dev->iobase + PCL816_CTRCTL);
805 outb(0x70, dev->iobase + PCL816_CTRCTL); 838 outb(0x70, dev->iobase + PCL816_CTRCTL);
806 outb(0, dev->iobase + PCL816_AD_LO); 839 outb(0, dev->iobase + PCL816_AD_LO);
807 inb(dev->iobase + PCL816_AD_LO); 840 inb(dev->iobase + PCL816_AD_LO);
808 inb(dev->iobase + PCL816_AD_HI); 841 inb(dev->iobase + PCL816_AD_HI);
809 outb(0, dev->iobase + PCL816_CLRINT); /* clear INT request */ 842
810 outb(0, dev->iobase + PCL816_CONTROL); /* Stop A/D */ 843 /* clear INT request */
844 outb(0, dev->iobase + PCL816_CLRINT);
845
846 /* Stop A/D */
847 outb(0, dev->iobase + PCL816_CONTROL);
811 devpriv->irq_blocked = 0; 848 devpriv->irq_blocked = 0;
812 devpriv->irq_was_now_closed = devpriv->int816_mode; 849 devpriv->irq_was_now_closed = devpriv->int816_mode;
813 devpriv->int816_mode = 0; 850 devpriv->int816_mode = 0;
@@ -877,8 +914,11 @@ start_pacer(struct comedi_device *dev, int mode, unsigned int divisor1,
877 outb(0xff, dev->iobase + PCL816_CTR0); 914 outb(0xff, dev->iobase + PCL816_CTR0);
878 outb(0x00, dev->iobase + PCL816_CTR0); 915 outb(0x00, dev->iobase + PCL816_CTR0);
879 udelay(1); 916 udelay(1);
880 outb(0xb4, dev->iobase + PCL816_CTRCTL); /* set counter 2 as mode 3 */ 917
881 outb(0x74, dev->iobase + PCL816_CTRCTL); /* set counter 1 as mode 3 */ 918 /* set counter 2 as mode 3 */
919 outb(0xb4, dev->iobase + PCL816_CTRCTL);
920 /* set counter 1 as mode 3 */
921 outb(0x74, dev->iobase + PCL816_CTRCTL);
882 udelay(1); 922 udelay(1);
883 923
884 if (mode == 1) { 924 if (mode == 1) {
@@ -914,41 +954,51 @@ check_channel_list(struct comedi_device *dev,
914 } 954 }
915 955
916 if (chanlen > 1) { 956 if (chanlen > 1) {
917 chansegment[0] = chanlist[0]; /* first channel is everytime ok */ 957 /* first channel is everytime ok */
958 chansegment[0] = chanlist[0];
918 for (i = 1, seglen = 1; i < chanlen; i++, seglen++) { 959 for (i = 1, seglen = 1; i < chanlen; i++, seglen++) {
919 /* build part of chanlist */ 960 /* build part of chanlist */
920 DEBUG(printk("%d. %d %d\n", i, CR_CHAN(chanlist[i]), 961 DEBUG(printk(KERN_INFO "%d. %d %d\n", i,
962 CR_CHAN(chanlist[i]),
921 CR_RANGE(chanlist[i]));) 963 CR_RANGE(chanlist[i]));)
964
965 /* we detect loop, this must by finish */
922 if (chanlist[0] == chanlist[i]) 966 if (chanlist[0] == chanlist[i])
923 break; /* we detect loop, this must by finish */ 967 break;
924 nowmustbechan = 968 nowmustbechan =
925 (CR_CHAN(chansegment[i - 1]) + 1) % chanlen; 969 (CR_CHAN(chansegment[i - 1]) + 1) % chanlen;
926 if (nowmustbechan != CR_CHAN(chanlist[i])) { 970 if (nowmustbechan != CR_CHAN(chanlist[i])) {
927 /* channel list isn't continous :-( */ 971 /* channel list isn't continous :-( */
928 printk 972 printk(KERN_WARNING
929 ("comedi%d: pcl816: channel list must be continous! chanlist[%i]=%d but must be %d or %d!\n", 973 "comedi%d: pcl816: channel list must "
930 dev->minor, i, CR_CHAN(chanlist[i]), 974 "be continous! chanlist[%i]=%d but "
931 nowmustbechan, CR_CHAN(chanlist[0])); 975 "must be %d or %d!\n", dev->minor,
976 i, CR_CHAN(chanlist[i]), nowmustbechan,
977 CR_CHAN(chanlist[0]));
932 return 0; 978 return 0;
933 } 979 }
934 chansegment[i] = chanlist[i]; /* well, this is next correct channel in list */ 980 /* well, this is next correct channel in list */
981 chansegment[i] = chanlist[i];
935 } 982 }
936 983
937 for (i = 0, segpos = 0; i < chanlen; i++) { /* check whole chanlist */ 984 /* check whole chanlist */
985 for (i = 0, segpos = 0; i < chanlen; i++) {
938 DEBUG(printk("%d %d=%d %d\n", 986 DEBUG(printk("%d %d=%d %d\n",
939 CR_CHAN(chansegment[i % seglen]), 987 CR_CHAN(chansegment[i % seglen]),
940 CR_RANGE(chansegment[i % seglen]), 988 CR_RANGE(chansegment[i % seglen]),
941 CR_CHAN(chanlist[i]), 989 CR_CHAN(chanlist[i]),
942 CR_RANGE(chanlist[i]));) 990 CR_RANGE(chanlist[i]));)
943 if (chanlist[i] != chansegment[i % seglen]) { 991 if (chanlist[i] != chansegment[i % seglen]) {
944 printk 992 printk(KERN_WARNING
945 ("comedi%d: pcl816: bad channel or range number! chanlist[%i]=%d,%d,%d and not %d,%d,%d!\n", 993 "comedi%d: pcl816: bad channel or range"
946 dev->minor, i, CR_CHAN(chansegment[i]), 994 " number! chanlist[%i]=%d,%d,%d and not"
947 CR_RANGE(chansegment[i]), 995 " %d,%d,%d!\n", dev->minor, i,
948 CR_AREF(chansegment[i]), 996 CR_CHAN(chansegment[i]),
949 CR_CHAN(chanlist[i % seglen]), 997 CR_RANGE(chansegment[i]),
950 CR_RANGE(chanlist[i % seglen]), 998 CR_AREF(chansegment[i]),
951 CR_AREF(chansegment[i % seglen])); 999 CR_CHAN(chanlist[i % seglen]),
1000 CR_RANGE(chanlist[i % seglen]),
1001 CR_AREF(chansegment[i % seglen]));
952 return 0; /* chan/gain list is strange */ 1002 return 0; /* chan/gain list is strange */
953 } 1003 }
954 } 1004 }
@@ -976,12 +1026,15 @@ setup_channel_list(struct comedi_device *dev,
976 for (i = 0; i < seglen; i++) { /* store range list to card */ 1026 for (i = 0; i < seglen; i++) { /* store range list to card */
977 devpriv->ai_act_chanlist[i] = CR_CHAN(chanlist[i]); 1027 devpriv->ai_act_chanlist[i] = CR_CHAN(chanlist[i]);
978 outb(CR_CHAN(chanlist[0]) & 0xf, dev->iobase + PCL816_MUX); 1028 outb(CR_CHAN(chanlist[0]) & 0xf, dev->iobase + PCL816_MUX);
979 outb(CR_RANGE(chanlist[0]), dev->iobase + PCL816_RANGE); /* select gain */ 1029 /* select gain */
1030 outb(CR_RANGE(chanlist[0]), dev->iobase + PCL816_RANGE);
980 } 1031 }
981 1032
982 udelay(1); 1033 udelay(1);
983 1034 /* select channel interval to scan */
984 outb(devpriv->ai_act_chanlist[0] | (devpriv->ai_act_chanlist[seglen - 1] << 4), dev->iobase + PCL816_MUX); /* select channel interval to scan */ 1035 outb(devpriv->ai_act_chanlist[0] |
1036 (devpriv->ai_act_chanlist[seglen - 1] << 4),
1037 dev->iobase + PCL816_MUX);
985} 1038}
986 1039
987#ifdef unused 1040#ifdef unused
@@ -1009,11 +1062,11 @@ static int set_rtc_irq_bit(unsigned char bit)
1009 save_flags(flags); 1062 save_flags(flags);
1010 cli(); 1063 cli();
1011 val = CMOS_READ(RTC_CONTROL); 1064 val = CMOS_READ(RTC_CONTROL);
1012 if (bit) { 1065 if (bit)
1013 val |= RTC_PIE; 1066 val |= RTC_PIE;
1014 } else { 1067 else
1015 val &= ~RTC_PIE; 1068 val &= ~RTC_PIE;
1016 } 1069
1017 CMOS_WRITE(val, RTC_CONTROL); 1070 CMOS_WRITE(val, RTC_CONTROL);
1018 CMOS_READ(RTC_INTR_FLAGS); 1071 CMOS_READ(RTC_INTR_FLAGS);
1019 restore_flags(flags); 1072 restore_flags(flags);
@@ -1083,7 +1136,7 @@ static int pcl816_attach(struct comedi_device *dev, struct comedi_devconfig *it)
1083 dev->iobase = iobase; 1136 dev->iobase = iobase;
1084 1137
1085 if (pcl816_check(iobase)) { 1138 if (pcl816_check(iobase)) {
1086 printk(", I cann't detect board. FAIL!\n"); 1139 printk(KERN_ERR ", I cann't detect board. FAIL!\n");
1087 return -EIO; 1140 return -EIO;
1088 } 1141 }
1089 1142
@@ -1101,30 +1154,29 @@ static int pcl816_attach(struct comedi_device *dev, struct comedi_devconfig *it)
1101 if (irq) { /* we want to use IRQ */ 1154 if (irq) { /* we want to use IRQ */
1102 if (((1 << irq) & this_board->IRQbits) == 0) { 1155 if (((1 << irq) & this_board->IRQbits) == 0) {
1103 printk 1156 printk
1104 (", IRQ %u is out of allowed range, DISABLING IT", 1157 (", IRQ %u is out of allowed range, "
1105 irq); 1158 "DISABLING IT", irq);
1106 irq = 0; /* Bad IRQ */ 1159 irq = 0; /* Bad IRQ */
1107 } else { 1160 } else {
1108 if (request_irq 1161 if (request_irq
1109 (irq, interrupt_pcl816, 0, "pcl816", dev)) { 1162 (irq, interrupt_pcl816, 0, "pcl816", dev)) {
1110 printk 1163 printk
1111 (", unable to allocate IRQ %u, DISABLING IT", 1164 (", unable to allocate IRQ %u, "
1112 irq); 1165 "DISABLING IT", irq);
1113 irq = 0; /* Can't use IRQ */ 1166 irq = 0; /* Can't use IRQ */
1114 } else { 1167 } else {
1115 printk(", irq=%u", irq); 1168 printk(KERN_INFO ", irq=%u", irq);
1116 } 1169 }
1117 } 1170 }
1118 } 1171 }
1119 } 1172 }
1120 1173
1121 dev->irq = irq; 1174 dev->irq = irq;
1122 if (irq) { 1175 if (irq) /* 1=we have allocated irq */
1123 devpriv->irq_free = 1; 1176 devpriv->irq_free = 1;
1124 } /* 1=we have allocated irq */ 1177 else
1125 else {
1126 devpriv->irq_free = 0; 1178 devpriv->irq_free = 0;
1127 } 1179
1128 devpriv->irq_blocked = 0; /* number of subdevice which use IRQ */ 1180 devpriv->irq_blocked = 0; /* number of subdevice which use IRQ */
1129 devpriv->int816_mode = 0; /* mode of irq */ 1181 devpriv->int816_mode = 0; /* mode of irq */
1130 1182
@@ -1181,18 +1233,22 @@ no_rtc:
1181 } 1233 }
1182 ret = request_dma(dma, "pcl816"); 1234 ret = request_dma(dma, "pcl816");
1183 if (ret) { 1235 if (ret) {
1184 printk(", unable to allocate DMA %u, FAIL!\n", dma); 1236 printk(KERN_ERR
1237 ", unable to allocate DMA %u, FAIL!\n", dma);
1185 return -EBUSY; /* DMA isn't free */ 1238 return -EBUSY; /* DMA isn't free */
1186 } 1239 }
1187 1240
1188 devpriv->dma = dma; 1241 devpriv->dma = dma;
1189 printk(", dma=%u", dma); 1242 printk(KERN_INFO ", dma=%u", dma);
1190 pages = 2; /* we need 16KB */ 1243 pages = 2; /* we need 16KB */
1191 devpriv->dmabuf[0] = __get_dma_pages(GFP_KERNEL, pages); 1244 devpriv->dmabuf[0] = __get_dma_pages(GFP_KERNEL, pages);
1192 1245
1193 if (!devpriv->dmabuf[0]) { 1246 if (!devpriv->dmabuf[0]) {
1194 printk(", unable to allocate DMA buffer, FAIL!\n"); 1247 printk(", unable to allocate DMA buffer, FAIL!\n");
1195 /* maybe experiment with try_to_free_pages() will help .... */ 1248 /*
1249 * maybe experiment with try_to_free_pages()
1250 * will help ....
1251 */
1196 return -EBUSY; /* no buffer :-( */ 1252 return -EBUSY; /* no buffer :-( */
1197 } 1253 }
1198 devpriv->dmapages[0] = pages; 1254 devpriv->dmapages[0] = pages;
@@ -1203,8 +1259,9 @@ no_rtc:
1203 if (devpriv->dma_rtc == 0) { /* we must do duble buff :-( */ 1259 if (devpriv->dma_rtc == 0) { /* we must do duble buff :-( */
1204 devpriv->dmabuf[1] = __get_dma_pages(GFP_KERNEL, pages); 1260 devpriv->dmabuf[1] = __get_dma_pages(GFP_KERNEL, pages);
1205 if (!devpriv->dmabuf[1]) { 1261 if (!devpriv->dmabuf[1]) {
1206 printk 1262 printk(KERN_ERR
1207 (", unable to allocate DMA buffer, FAIL!\n"); 1263 ", unable to allocate DMA buffer, "
1264 "FAIL!\n");
1208 return -EBUSY; 1265 return -EBUSY;
1209 } 1266 }
1210 devpriv->dmapages[1] = pages; 1267 devpriv->dmapages[1] = pages;
@@ -1288,7 +1345,7 @@ case COMEDI_SUBD_DO:
1288 */ 1345 */
1289static int pcl816_detach(struct comedi_device *dev) 1346static int pcl816_detach(struct comedi_device *dev)
1290{ 1347{
1291 DEBUG(printk("comedi%d: pcl816: remove\n", dev->minor);) 1348 DEBUG(printk(KERN_INFO "comedi%d: pcl816: remove\n", dev->minor);)
1292 free_resources(dev); 1349 free_resources(dev);
1293#ifdef unused 1350#ifdef unused
1294 if (devpriv->dma_rtc) 1351 if (devpriv->dma_rtc)