staging: comedi: pcl818: clarify irq request in pcl818_attach()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Mon, 17 Feb 2014 21:27:10 +0000 (14:27 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 18 Feb 2014 19:55:30 +0000 (11:55 -0800)
All the board types can use IRQ 2-7 for async command support. Remove
the 'IRQbits', which is a mask of the valid IRQs, from the boardinfo
and refactor pcl818_attach().

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/pcl818.c

index ded1bf8dbe3ecb558809ef7271cf26fb8b64bd54..e3a2579eecf261f4e1034a02b1f8313435b20bc1 100644 (file)
@@ -261,7 +261,6 @@ struct pcl818_board {
        unsigned int ns_min;
        int n_aochan;
        const struct comedi_lrange *ai_range_type;
-       unsigned int IRQbits;
        int ai_maxdata;
        int ao_maxdata;
        unsigned int has_dma:1;
@@ -275,7 +274,6 @@ static const struct pcl818_board boardtypes[] = {
                .ns_min         = 25000,
                .n_aochan       = 1,
                .ai_range_type  = &range_pcl818l_l_ai,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -285,7 +283,6 @@ static const struct pcl818_board boardtypes[] = {
                .ns_min         = 10000,
                .n_aochan       = 1,
                .ai_range_type  = &range_pcl818h_ai,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -295,7 +292,6 @@ static const struct pcl818_board boardtypes[] = {
                .ns_min         = 10000,
                .n_aochan       = 1,
                .ai_range_type  = &range_pcl818h_ai,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -306,7 +302,6 @@ static const struct pcl818_board boardtypes[] = {
                .ns_min         = 10000,
                .n_aochan       = 1,
                .ai_range_type  = &range_pcl818hg_ai,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -317,7 +312,6 @@ static const struct pcl818_board boardtypes[] = {
                .ns_min         = 10000,
                .n_aochan       = 2,
                .ai_range_type  = &range_pcl818h_ai,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -327,7 +321,6 @@ static const struct pcl818_board boardtypes[] = {
                .ns_min         = 16000,
                .n_aochan       = 2,
                .ai_range_type  = &range_unipolar5,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -335,7 +328,6 @@ static const struct pcl818_board boardtypes[] = {
                .name           = "pcm3718",
                .ns_min         = 10000,
                .ai_range_type  = &range_pcl818h_ai,
-               .IRQbits        = 0x00fc,
                .ai_maxdata     = 0xfff,
                .ao_maxdata     = 0xfff,
                .has_dma        = 1,
@@ -1347,7 +1339,8 @@ static int pcl818_attach(struct comedi_device *dev, struct comedi_devconfig *it)
                return -EIO;
        }
 
-       if ((1 << it->options[1]) & board->IRQbits) {
+       /* we can use IRQ 2-7 for async command support */
+       if (it->options[1] >= 2 && it->options[1] <= 7) {
                ret = request_irq(it->options[1], interrupt_pcl818, 0,
                                  dev->board_name, dev);
                if (ret == 0)