* 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;
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,
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)) {
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);
.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)
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;
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;