upgrade to fedora-2.6.12-1.1398.FC4 + vserver 2.0.rc7
[linux-2.6.git] / drivers / telephony / ixj.c
index 59a6515..d5863b8 100644 (file)
@@ -41,9 +41,6 @@
  *
  ***************************************************************************/
 
-static char ixj_c_rcsid[] = "$Id: ixj.c,v 4.7 2001/08/13 06:19:33 craigs Exp $";
-static char ixj_c_revision[] = "$Revision: 4.7 $";
-
 /*
  * $Log: ixj.c,v $
  *
@@ -285,7 +282,7 @@ static int ixjdebug;
 static int hertz = HZ;
 static int samplerate = 100;
 
-MODULE_PARM(ixjdebug, "i");
+module_param(ixjdebug, int, 0);
 
 /************************************************************************
 *
@@ -406,14 +403,10 @@ static int Stub(IXJ * J, unsigned long arg)
        return 0;
 }
 
-static IXJ_REGFUNC ixj_DownloadG729 = &Stub;
-static IXJ_REGFUNC ixj_DownloadTS85 = &Stub;
 static IXJ_REGFUNC ixj_PreRead = &Stub;
 static IXJ_REGFUNC ixj_PostRead = &Stub;
 static IXJ_REGFUNC ixj_PreWrite = &Stub;
 static IXJ_REGFUNC ixj_PostWrite = &Stub;
-static IXJ_REGFUNC ixj_PreIoctl = &Stub;
-static IXJ_REGFUNC ixj_PostIoctl = &Stub;
 
 static void ixj_read_frame(IXJ *j);
 static void ixj_write_frame(IXJ *j);
@@ -792,97 +785,6 @@ static int ixj_wink(IXJ *j)
        return 0;
 }
 
-static int ixj_register(int index, IXJ_REGFUNC regfunc)
-{
-       int cnt;
-       int retval = 0;
-       switch (index) {
-       case G729LOADER:
-               ixj_DownloadG729 = regfunc;
-               for (cnt = 0; cnt < IXJMAX; cnt++) {
-                       IXJ *j = get_ixj(cnt);
-                       while(test_and_set_bit(cnt, (void *)&j->busyflags) != 0) {
-                               set_current_state(TASK_INTERRUPTIBLE);
-                               schedule_timeout(1);
-                       }
-                       ixj_DownloadG729(j, 0L);
-                       clear_bit(cnt, &j->busyflags);
-               }
-               break;
-       case TS85LOADER:
-               ixj_DownloadTS85 = regfunc;
-               for (cnt = 0; cnt < IXJMAX; cnt++) {
-                       IXJ *j = get_ixj(cnt);
-                       while(test_and_set_bit(cnt, (void *)&j->busyflags) != 0) {
-                               set_current_state(TASK_INTERRUPTIBLE);
-                               schedule_timeout(1);
-                       }
-                       ixj_DownloadTS85(j, 0L);
-                       clear_bit(cnt, &j->busyflags);
-               }
-               break;
-       case PRE_READ:
-               ixj_PreRead = regfunc;
-               break;
-       case POST_READ:
-               ixj_PostRead = regfunc;
-               break;
-       case PRE_WRITE:
-               ixj_PreWrite = regfunc;
-               break;
-       case POST_WRITE:
-               ixj_PostWrite = regfunc;
-               break;
-       case PRE_IOCTL:
-               ixj_PreIoctl = regfunc;
-               break;
-       case POST_IOCTL:
-               ixj_PostIoctl = regfunc;
-               break;
-       default:
-               retval = 1;
-       }
-       return retval;
-}
-
-EXPORT_SYMBOL(ixj_register);
-
-static int ixj_unregister(int index)
-{
-       int retval = 0;
-       switch (index) {
-       case G729LOADER:
-               ixj_DownloadG729 = &Stub;
-               break;
-       case TS85LOADER:
-               ixj_DownloadTS85 = &Stub;
-               break;
-       case PRE_READ:
-               ixj_PreRead = &Stub;
-               break;
-       case POST_READ:
-               ixj_PostRead = &Stub;
-               break;
-       case PRE_WRITE:
-               ixj_PreWrite = &Stub;
-               break;
-       case POST_WRITE:
-               ixj_PostWrite = &Stub;
-               break;
-       case PRE_IOCTL:
-               ixj_PreIoctl = &Stub;
-               break;
-       case POST_IOCTL:
-               ixj_PostIoctl = &Stub;
-               break;
-       default:
-               retval = 1;
-       }
-       return retval;
-}
-
-EXPORT_SYMBOL(ixj_unregister);
-
 static void ixj_init_timer(IXJ *j)
 {
        init_timer(&j->timer);
@@ -2257,7 +2159,7 @@ static int ixj_open(struct phone_device *p, struct file *file_p)
        return 0;
 }
 
-int ixj_release(struct inode *inode, struct file *file_p)
+static int ixj_release(struct inode *inode, struct file *file_p)
 {
        IXJ_TONE ti;
        int cnt;
@@ -6044,10 +5946,10 @@ static int ixj_build_filter_cadence(IXJ *j, IXJ_FILTER_CADENCE __user * cp)
        j->cadence_f[lcp->filter].off3 = lcp->off3;
        j->cadence_f[lcp->filter].off3min = 0;
        j->cadence_f[lcp->filter].off3max = 0;
-       kfree(lcp);
        if(ixjdebug & 0x0002) {
                printk(KERN_INFO "Cadence %d loaded\n", lcp->filter);
        }
+       kfree(lcp);
        return 0;
 }
 
@@ -6267,8 +6169,14 @@ static int ixj_ioctl(struct inode *inode, struct file *file_p, unsigned int cmd,
                retval = j->serial;
                break;
        case IXJCTL_VERSION:
-               if (copy_to_user(argp, ixj_c_revision, strlen(ixj_c_revision))) 
-                       retval = -EFAULT;
+               {
+                       char arg_str[100];
+                       snprintf(arg_str, sizeof(arg_str),
+                               "\nDriver version %i.%i.%i", IXJ_VER_MAJOR,
+                               IXJ_VER_MINOR, IXJ_BLD_VER);
+                       if (copy_to_user(argp, arg_str, strlen(arg_str)))
+                               retval = -EFAULT;
+               }
                break;
        case PHONE_RING_CADENCE:
                j->ring_cadence = arg;
@@ -6785,7 +6693,7 @@ static int ixj_fasync(int fd, struct file *file_p, int mode)
        return fasync_helper(fd, file_p, mode, &j->async_queue);
 }
 
-struct file_operations ixj_fops =
+static struct file_operations ixj_fops =
 {
         .owner          = THIS_MODULE,
         .read           = ixj_enhanced_read,
@@ -7263,9 +7171,6 @@ static int ixj_get_status_proc(char *buf)
        int cnt;
        IXJ *j;
        len = 0;
-       len += sprintf(buf + len, "%s", ixj_c_rcsid);
-       len += sprintf(buf + len, "\n%s", ixj_h_rcsid);
-       len += sprintf(buf + len, "\n%s", ixjuser_h_rcsid);
        len += sprintf(buf + len, "\nDriver version %i.%i.%i", IXJ_VER_MAJOR, IXJ_VER_MINOR, IXJ_BLD_VER);
        len += sprintf(buf + len, "\nsizeof IXJ struct %Zd bytes", sizeof(IXJ));
        len += sprintf(buf + len, "\nsizeof DAA struct %Zd bytes", sizeof(DAA_REGS));
@@ -7707,8 +7612,8 @@ static int xio[IXJMAX + 1] =
        0,
 };
 
-MODULE_PARM(dspio, "1-" __MODULE_STRING(IXJMAX) "i");
-MODULE_PARM(xio, "1-" __MODULE_STRING(IXJMAX) "i");
+module_param_array(dspio, int, NULL, 0);
+module_param_array(xio, int, NULL, 0);
 MODULE_DESCRIPTION("Quicknet VoIP Telephony card module - www.quicknet.net");
 MODULE_AUTHOR("Ed Okerson <eokerson@quicknet.net>");
 MODULE_LICENSE("GPL");
@@ -7735,7 +7640,7 @@ static IXJ *new_ixj(unsigned long port)
        return res;
 }
 
-int __init ixj_probe_isapnp(int *cnt)
+static int __init ixj_probe_isapnp(int *cnt)
 {               
        int probe = 0;
        int func = 0x110;
@@ -7815,7 +7720,7 @@ int __init ixj_probe_isapnp(int *cnt)
        return probe;
 }
                         
-int __init ixj_probe_isa(int *cnt)
+static int __init ixj_probe_isa(int *cnt)
 {
        int i, probe;
 
@@ -7839,7 +7744,7 @@ int __init ixj_probe_isa(int *cnt)
        return 0;
 }
 
-int __init ixj_probe_pci(int *cnt)
+static int __init ixj_probe_pci(int *cnt)
 {
        struct pci_dev *pci = NULL;   
        int i, probe = 0;
@@ -7885,7 +7790,7 @@ static int __init ixj_init(void)
        if ((probe = ixj_probe_pci(&cnt)) < 0) {
                return probe;
        }
-       printk("%s\n", ixj_c_rcsid);
+       printk(KERN_INFO "ixj driver initialized.\n");
        create_proc_read_entry ("ixj", 0, NULL, ixj_read_proc, NULL);
        return probe;
 }