Hello,

as I didn't understand how to patch using patch, I done it by hand.
Unfortunately, under 2.5.5-pre1 (first version including ALSA) I got:
gcc -D__KERNEL__ -I/usr/src/linux-2.5/include -Wall -Wstrict-prototypes -Wno-trigraphs 
-O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe 
-mpreferred-stack-boundary=2 -march=i686 -DMODULE -I ../ost/include -I . 
-D__DVB_PACK__ -g -DUSE_OSD  -DKBUILD_BASENAME=saa7146_core  -DEXPORT_SYMTAB -c 
saa7146_core.c
In file included from saa7146_core.c:149:
saa7146.c: In function `i2c_busy_rise_and_fall':
saa7146.c:1289: structure has no member named `work'
saa7146.c:1314: structure has no member named `work'
make[2]: *** [saa7146_core.o] Error 1
make[2]: Leaving directory `/usr/src/DVB-2.5.5-pre1/driver'
make[1]: *** [_mod_/usr/src/DVB-2.5.5-pre1/driver] Error 2
make[1]: Leaving directory `/usr/src/linux-2.5'
make: *** [here] Error 2
Exit 2

And I don't understand what I have done false :-((

Does it came from here:

diff -u -r1.16 saa7146_core.c
--- saa7146_core.c      5 Nov 2001 00:48:02 -0000 1.16
+++ saa7146_core.c      9 Feb 2002 02:50:40 -0000
...
dprintk(KERN_ERR "saa7146_core.o: SAA7146_DO_MMAP.\n");
-
+
  if (size > saa->buffers * GRABBING_MEM_SIZE)

I have generated here a patch from the change I made:

diff -uBr /mnt/ext2/linux/DVB/driver/dvb.c /usr/src/DVB-2.5.5-pre1/driver/dvb.c
--- /mnt/ext2/linux/DVB/driver/dvb.c    Tue Feb 12 14:39:59 2002
+++ /usr/src/DVB-2.5.5-pre1/driver/dvb.c        Sun Feb 17 23:48:30 2002
@@ -3413,13 +3413,14 @@
        return 0;
 }
 
-static int dvb_mmap(struct video_device *dev, const char *adr, unsigned long size)
+static int dvb_mmap(struct vm_area_struct *vma, struct video_device *dev, const char 
+*adr, unsigned long size)
 {
        struct dvb_struct* dvb = (struct dvb_struct*)dev;
        struct saa7146_mmap_struct m;
        
        fprintk(KERN_ERR "dvb: dvb_mmap called, adr:%p, size:0x%08x\n",adr,(u32)size);
         
+       m.vma = vma;
        m.adr = adr;
        m.size = size;
         
diff -uBr /mnt/ext2/linux/DVB/driver/dvb_frontend.c 
/usr/src/DVB-2.5.5-pre1/driver/dvb_frontend.c
--- /mnt/ext2/linux/DVB/driver/dvb_frontend.c   Fri Feb  8 16:59:23 2002
+++ /usr/src/DVB-2.5.5-pre1/driver/dvb_frontend.c       Sun Feb 17 23:49:30 2002
@@ -27,6 +27,7 @@
 #include <linux/smp_lock.h>
#include <linux/string.h>
#include <linux/module.h>
+#include <linux/time.h>
#ifdef MODULE
 MODULE_DESCRIPTION("");
@@ -136,7 +137,7 @@
         int wp;
         struct timeval tv;
 
-        get_fast_time(&tv);
+       do_gettimeofday(&tv);
         ev->timestamp=tv.tv_sec;
         
         spin_lock(&events->eventlock);
diff -uBr /mnt/ext2/linux/DVB/driver/dvbdev.c /usr/src/DVB-2.5.5-pre1/driver/dvbdev.c
--- /mnt/ext2/linux/DVB/driver/dvbdev.c Wed Jan  9 17:02:44 2002
+++ /usr/src/DVB-2.5.5-pre1/driver/dvbdev.c     Sun Feb 17 23:50:46 2002
@@ -53,7 +53,7 @@
 static inline struct dvb_device *
 inode2dev (struct inode *inode)
 {
-        int minor=(MINOR(inode->i_rdev)>>6);
+        int minor=(minor(inode->i_rdev)>>6);
        
        return dvb_device[minor];
 }
@@ -61,7 +61,7 @@
 static inline int
 inode2num(struct inode *inode)
 {
-        return (0x3f&MINOR(inode->i_rdev));
+        return (0x3f&minor(inode->i_rdev));
 }
 
 static ssize_t 
diff -uBr /mnt/ext2/linux/DVB/driver/saa7146_core.c 
/usr/src/DVB-2.5.5-pre1/driver/saa7146_core.c
--- /mnt/ext2/linux/DVB/driver/saa7146_core.c   Mon Nov  5 15:38:29 2001
+++ /usr/src/DVB-2.5.5-pre1/driver/saa7146_core.c       Sun Feb 17 23:55:15 2002
@@ -127,7 +127,7 @@
 
 #define SAA7146_RESCHED \
         do { \
-          if (current->need_resched) \
+          if (current->work.need_resched) \
             schedule(); \
         } while (0)
 
@@ -459,6 +459,7 @@
                case SAA7146_DO_MMAP: {
                        struct saa7146_mmap_struct* mms = arg;
 
+                       struct vm_area_struct *vma = mms->vma;
                        const char *adr = mms->adr;
                        unsigned long size = mms->size;
                        unsigned long start=(unsigned long) adr;
@@ -477,7 +478,7 @@
                        while (size > 0) 
                        {
                                page = kvirt_to_pa(pos);
-                               if (remap_page_range(start, page, PAGE_SIZE, 
PAGE_SHARED))
+                               if (remap_page_range(vma, start, page, PAGE_SIZE, 
+PAGE_SHARED))
                                        return -EAGAIN;
                                start   += PAGE_SIZE;
                                pos     += PAGE_SIZE;
diff -uBr /mnt/ext2/linux/DVB/driver/saa7146_defs.h 
/usr/src/DVB-2.5.5-pre1/driver/saa7146_defs.h
--- /mnt/ext2/linux/DVB/driver/saa7146_defs.h   Wed Feb 21 18:44:03 2001
+++ /usr/src/DVB-2.5.5-pre1/driver/saa7146_defs.h       Sun Feb 17 23:56:02 2002
@@ -40,6 +40,7 @@
 
 struct saa7146_mmap_struct
 {
+       struct vm_area_struct *vma;
        const char *adr;
        unsigned long size;
 };
diff -uBr /mnt/ext2/linux/DVB/driver/tuner.c /usr/src/DVB-2.5.5-pre1/driver/tuner.c
--- /mnt/ext2/linux/DVB/driver/tuner.c  Wed Jan  9 17:02:44 2002
+++ /usr/src/DVB-2.5.5-pre1/driver/tuner.c      Sun Feb 17 23:56:30 2002
@@ -5,7 +5,7 @@
 #include <linux/timer.h>
#include <linux/delay.h>
#include <linux/errno.h>
-#include <linux/malloc.h>
+#include <linux/slab.h>
#include <linux/poll.h>
#include <linux/i2c.h>
#include <linux/types.h>

Thanks you very much,

        Gr�goire
________________________________________________________________
http://ulima.unil.ch/greg ICQ:16624071 mailto:[EMAIL PROTECTED]


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as 
subject.

Reply via email to