upgrade to fedora-2.6.12-1.1398.FC4 + vserver 2.0.rc7
[linux-2.6.git] / drivers / media / radio / radio-zoltrix.c
index 8bc9075..342f92d 100644 (file)
@@ -29,7 +29,7 @@
 #include <linux/module.h>      /* Modules                        */
 #include <linux/init.h>                /* Initdata                       */
 #include <linux/ioport.h>      /* check_region, request_region   */
-#include <linux/delay.h>       /* udelay                 */
+#include <linux/delay.h>       /* udelay, msleep                 */
 #include <asm/io.h>            /* outb, outb_p                   */
 #include <asm/uaccess.h>       /* copy to/from user              */
 #include <linux/videodev.h>    /* kernel radio structs           */
@@ -51,15 +51,6 @@ struct zol_device {
        struct semaphore lock;
 };
 
-
-/* local things */
-
-static void sleep_delay(void)
-{
-       /* Sleep nicely for +/- 10 mS */
-       schedule();
-}
-
 static int zol_setvol(struct zol_device *dev, int vol)
 {
        dev->curvol = vol;
@@ -76,7 +67,7 @@ static int zol_setvol(struct zol_device *dev, int vol)
        }
 
        outb(dev->curvol-1, io);
-       sleep_delay();
+       msleep(10);
        inb(io + 2);
        up(&dev->lock);
        return 0;
@@ -169,18 +160,17 @@ static int zol_setfreq(struct zol_device *dev, unsigned long freq)
 
 /* Get signal strength */
 
-int zol_getsigstr(struct zol_device *dev)
+static int zol_getsigstr(struct zol_device *dev)
 {
        int a, b;
 
        down(&dev->lock);
        outb(0x00, io);         /* This stuff I found to do nothing */
        outb(dev->curvol, io);
-       sleep_delay();
-       sleep_delay();
+       msleep(20);
 
        a = inb(io);
-       sleep_delay();
+       msleep(10);
        b = inb(io);
 
        up(&dev->lock);
@@ -194,7 +184,7 @@ int zol_getsigstr(struct zol_device *dev)
        return (0);
 }
 
-int zol_is_stereo (struct zol_device *dev)
+static int zol_is_stereo (struct zol_device *dev)
 {
        int x1, x2;
 
@@ -202,11 +192,10 @@ int zol_is_stereo (struct zol_device *dev)
        
        outb(0x00, io);
        outb(dev->curvol, io);
-       sleep_delay();
-       sleep_delay();
+       msleep(20);
 
        x1 = inb(io);
-       sleep_delay();
+       msleep(10);
        x2 = inb(io);
 
        up(&dev->lock);
@@ -368,8 +357,7 @@ static int __init zoltrix_init(void)
 
        outb(0, io);
        outb(0, io);
-       sleep_delay();
-       sleep_delay();
+       msleep(20);
        inb(io + 3);
 
        zoltrix_unit.curvol = 0;
@@ -382,9 +370,9 @@ MODULE_AUTHOR("C.van Schaik");
 MODULE_DESCRIPTION("A driver for the Zoltrix Radio Plus.");
 MODULE_LICENSE("GPL");
 
-MODULE_PARM(io, "i");
+module_param(io, int, 0);
 MODULE_PARM_DESC(io, "I/O address of the Zoltrix Radio Plus (0x20c or 0x30c)");
-MODULE_PARM(radio_nr, "i");
+module_param(radio_nr, int, 0);
 
 static void __exit zoltrix_cleanup_module(void)
 {