upgrade to linux 2.6.10-1.12_FC2
[linux-2.6.git] / drivers / media / video / zoran_driver.c
index d6294bd..0cb6cd2 100644 (file)
@@ -265,7 +265,7 @@ get_high_mem (unsigned long size)
  * if more than one driver at a time has the idea to use this memory!!!!
  */
 
-       volatile unsigned char *mem;
+       volatile unsigned char __iomem *mem;
        unsigned char c;
        unsigned long hi_mem_ph;
        unsigned long i;
@@ -285,21 +285,21 @@ get_high_mem (unsigned long size)
        for (i = 0; i < size; i++) {
                /* Check if it is memory */
                c = i & 0xff;
-               mem[i] = c;
-               if (mem[i] != c)
+               writeb(c, mem + i);
+               if (readb(mem + i) != c)
                        break;
                c = 255 - c;
-               mem[i] = c;
-               if (mem[i] != c)
+               writeb(c, mem + i);
+               if (readb(mem + i) != c)
                        break;
-               mem[i] = 0;     /* zero out memory */
+               writeb(0, mem + i);     /* zero out memory */
 
                /* give the kernel air to breath */
                if ((i & 0x3ffff) == 0x3ffff)
                        schedule();
        }
 
-       iounmap((void *) mem);
+       iounmap(mem);
 
        if (i != size) {
                dprintk(1,
@@ -1917,8 +1917,7 @@ zoran_set_norm (struct zoran *zr,
                decoder_command(zr, DECODER_SET_NORM, &norm);
 
                /* let changes come into effect */
-               current->state = TASK_UNINTERRUPTIBLE;
-               schedule_timeout(2 * HZ);
+               ssleep(2);
 
                decoder_command(zr, DECODER_GET_STATUS, &status);
                if (!(status & DECODER_STATUS_GOOD)) {
@@ -2639,8 +2638,7 @@ zoran_do_ioctl (struct inode *inode,
                decoder_command(zr, DECODER_SET_NORM, &norm);
 
                /* sleep 1 second */
-               current->state = TASK_UNINTERRUPTIBLE;
-               schedule_timeout(1 * HZ);
+               ssleep(1);
 
                /* Get status of video decoder */
                decoder_command(zr, DECODER_GET_STATUS, &status);
@@ -4450,12 +4448,6 @@ static struct vm_operations_struct zoran_vm_ops = {
        .close = zoran_vm_close,
 };
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#define zr_remap_page_range(a,b,c,d,e) remap_page_range(b,c,d,e)
-#else
-#define zr_remap_page_range(a,b,c,d,e) remap_page_range(a,b,c,d,e)
-#endif
-
 static int
 zoran_mmap (struct file           *file,
            struct vm_area_struct *vma)
@@ -4555,12 +4547,14 @@ zoran_mmap (struct file           *file,
                                pos =
                                    (unsigned long) fh->jpg_buffers.
                                    buffer[i].frag_tab[2 * j];
-                               page = virt_to_phys(bus_to_virt(pos));  /* should just be pos on i386 */
-                               if (zr_remap_page_range
-                                   (vma, start, page, todo, PAGE_SHARED)) {
+                               /* should just be pos on i386 */
+                               page = virt_to_phys(bus_to_virt(pos))
+                                                               >> PAGE_SHIFT;
+                               if (remap_pfn_range(vma, start, page,
+                                                       todo, PAGE_SHARED)) {
                                        dprintk(1,
                                                KERN_ERR
-                                               "%s: zoran_mmap(V4L) - remap_page_range failed\n",
+                                               "%s: zoran_mmap(V4L) - remap_pfn_range failed\n",
                                                ZR_DEVNAME(zr));
                                        res = -EAGAIN;
                                        goto jpg_mmap_unlock_and_return;
@@ -4641,11 +4635,11 @@ zoran_mmap (struct file           *file,
                        if (todo > fh->v4l_buffers.buffer_size)
                                todo = fh->v4l_buffers.buffer_size;
                        page = fh->v4l_buffers.buffer[i].fbuffer_phys;
-                       if (zr_remap_page_range
-                           (vma, start, page, todo, PAGE_SHARED)) {
+                       if (remap_pfn_range(vma, start, page >> PAGE_SHIFT,
+                                                       todo, PAGE_SHARED)) {
                                dprintk(1,
                                        KERN_ERR
-                                       "%s: zoran_mmap(V4L)i - remap_page_range failed\n",
+                                       "%s: zoran_mmap(V4L)i - remap_pfn_range failed\n",
                                        ZR_DEVNAME(zr));
                                res = -EAGAIN;
                                goto v4l_mmap_unlock_and_return;