ad525x_dpot: extend write argument to 16bits
[safe/jmp/linux-2.6] / drivers / char / cyclades.c
index df5038b..9824b41 100644 (file)
@@ -79,6 +79,7 @@
 #include <linux/bitops.h>
 #include <linux/firmware.h>
 #include <linux/device.h>
+#include <linux/slab.h>
 
 #include <linux/io.h>
 #include <linux/uaccess.h>
@@ -158,13 +159,11 @@ static unsigned int cy_isa_addresses[] = {
 
 #define NR_ISA_ADDRS ARRAY_SIZE(cy_isa_addresses)
 
-#ifdef MODULE
 static long maddr[NR_CARDS];
 static int irq[NR_CARDS];
 
 module_param_array(maddr, long, NULL, 0);
 module_param_array(irq, int, NULL, 0);
-#endif
 
 #endif                         /* CONFIG_ISA */
 
@@ -598,12 +597,6 @@ static void cyy_chip_tx(struct cyclades_card *cinfo, unsigned int chip,
        save_car = readb(base_addr + (CyCAR << index));
        cy_writeb(base_addr + (CyCAR << index), save_xir);
 
-       /* validate the port# (as configured and open) */
-       if (channel + chip * 4 >= cinfo->nports) {
-               cy_writeb(base_addr + (CySRER << index),
-                         readb(base_addr + (CySRER << index)) & ~CyTxRdy);
-               goto end;
-       }
        info = &cinfo->ports[channel + chip * 4];
        tty = tty_port_tty_get(&info->port);
        if (tty == NULL) {
@@ -3316,13 +3309,10 @@ static int __init cy_detect_isa(void)
        unsigned short cy_isa_irq, nboard;
        void __iomem *cy_isa_address;
        unsigned short i, j, cy_isa_nchan;
-#ifdef MODULE
        int isparam = 0;
-#endif
 
        nboard = 0;
 
-#ifdef MODULE
        /* Check for module parameters */
        for (i = 0; i < NR_CARDS; i++) {
                if (maddr[i] || i) {
@@ -3332,7 +3322,6 @@ static int __init cy_detect_isa(void)
                if (!maddr[i])
                        break;
        }
-#endif
 
        /* scan the address table probing for Cyclom-Y/ISA boards */
        for (i = 0; i < NR_ISA_ADDRS; i++) {
@@ -3353,11 +3342,10 @@ static int __init cy_detect_isa(void)
                        iounmap(cy_isa_address);
                        continue;
                }
-#ifdef MODULE
-               if (isparam && irq[i])
+
+               if (isparam && i < NR_CARDS && irq[i])
                        cy_isa_irq = irq[i];
                else
-#endif
                        /* find out the board's irq by probing */
                        cy_isa_irq = detect_isa_irq(cy_isa_address);
                if (cy_isa_irq == 0) {
@@ -4208,3 +4196,4 @@ module_exit(cy_cleanup_module);
 MODULE_LICENSE("GPL");
 MODULE_VERSION(CY_VERSION);
 MODULE_ALIAS_CHARDEV_MAJOR(CYCLADES_MAJOR);
+MODULE_FIRMWARE("cyzfirm.bin");