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.