From 66855b995a36b2f1f30271e38713ade181ac6c4a Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sun, 20 Jan 2013 16:35:39 +0200 Subject: [PATCH] linux-tbs-drivers: linux 3.7 compatibility --- .../linux-tbs-drivers-121119-kernel-3.7.patch | 117 ++++++++++++++++++ .../linux-drivers/linux-tbs-drivers/unpack | 8 ++ 2 files changed, 125 insertions(+) create mode 100644 packages/linux-drivers/linux-tbs-drivers/patches.upstream/linux-tbs-drivers-121119-kernel-3.7.patch diff --git a/packages/linux-drivers/linux-tbs-drivers/patches.upstream/linux-tbs-drivers-121119-kernel-3.7.patch b/packages/linux-drivers/linux-tbs-drivers/patches.upstream/linux-tbs-drivers-121119-kernel-3.7.patch new file mode 100644 index 0000000000..93ce5d8c0c --- /dev/null +++ b/packages/linux-drivers/linux-tbs-drivers/patches.upstream/linux-tbs-drivers-121119-kernel-3.7.patch @@ -0,0 +1,117 @@ +diff --git a/linux-tbs-drivers/linux/drivers/media/video/et61x251/et61x251_core.c b/linux-tbs-drivers/linux/drivers/media/video/et61x251/et61x251_core.c +index 3146eec..c3a112e 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/et61x251/et61x251_core.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/et61x251/et61x251_core.c +@@ -1550,7 +1550,7 @@ static int et61x251_mmap(struct file* filp, struct vm_area_struct *vma) + } + + vma->vm_flags |= VM_IO; +- vma->vm_flags |= VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + + pos = cam->frame[i].bufmem; + while (size > 0) { /* size is page-aligned */ +diff --git a/linux-tbs-drivers/linux/drivers/media/video/meye.c b/linux-tbs-drivers/linux/drivers/media/video/meye.c +index 2b7b1db..c80a3c5 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/meye.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/meye.c +@@ -1708,7 +1708,7 @@ static int meye_mmap(struct file *file, struct vm_area_struct *vma) + + vma->vm_ops = &meye_vm_ops; + vma->vm_flags &= ~VM_IO; /* not I/O memory */ +- vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */ ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; /* avoid to swap out this VMA */ + vma->vm_private_data = (void *) (offset / gbufsize); + meye_vm_open(vma); + +diff --git a/linux-tbs-drivers/linux/drivers/media/video/omap/omap_vout.c b/linux-tbs-drivers/linux/drivers/media/video/omap/omap_vout.c +index b5ef362..b8119fe 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/omap/omap_vout.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/omap/omap_vout.c +@@ -896,7 +896,7 @@ static int omap_vout_mmap(struct file *file, struct vm_area_struct *vma) + + q->bufs[i]->baddr = vma->vm_start; + +- vma->vm_flags |= VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); + vma->vm_ops = &omap_vout_vm_ops; + vma->vm_private_data = (void *) vout; +diff --git a/linux-tbs-drivers/linux/drivers/media/video/sn9c102/sn9c102_core.c b/linux-tbs-drivers/linux/drivers/media/video/sn9c102/sn9c102_core.c +index 32aa3c2..49d7042 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/sn9c102/sn9c102_core.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/sn9c102/sn9c102_core.c +@@ -2130,7 +2130,7 @@ static int sn9c102_mmap(struct file* filp, struct vm_area_struct *vma) + } + + vma->vm_flags |= VM_IO; +- vma->vm_flags |= VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + + pos = cam->frame[i].bufmem; + while (size > 0) { /* size is page-aligned */ +diff --git a/linux-tbs-drivers/linux/drivers/media/video/usbvision/usbvision-video.c b/linux-tbs-drivers/linux/drivers/media/video/usbvision/usbvision-video.c +index 5a74f5e..5791c67 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/usbvision/usbvision-video.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/usbvision/usbvision-video.c +@@ -1091,7 +1091,7 @@ static int usbvision_v4l2_mmap(struct file *file, struct vm_area_struct *vma) + + /* VM_IO is eventually going to replace PageReserved altogether */ + vma->vm_flags |= VM_IO; +- vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */ ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; /* avoid to swap out this VMA */ + + pos = usbvision->frame[i].data; + while (size > 0) { +diff --git a/linux-tbs-drivers/linux/drivers/media/video/videobuf-dma-sg.c b/linux-tbs-drivers/linux/drivers/media/video/videobuf-dma-sg.c +index f163a3a..844adad 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/videobuf-dma-sg.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/videobuf-dma-sg.c +@@ -586,7 +586,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, + map->count = 1; + map->q = q; + vma->vm_ops = &videobuf_vm_ops; +- vma->vm_flags |= VM_DONTEXPAND | VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_flags &= ~VM_IO; /* using shared anonymous pages */ + vma->vm_private_data = map; + dprintk(1, "mmap %p: q=%p %08lx-%08lx pgoff %08lx bufs %d-%d\n", +diff --git a/linux-tbs-drivers/linux/drivers/media/video/videobuf-vmalloc.c b/linux-tbs-drivers/linux/drivers/media/video/videobuf-vmalloc.c +index 9f5632c..21375fa 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/videobuf-vmalloc.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/videobuf-vmalloc.c +@@ -274,7 +274,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, + } + + vma->vm_ops = &videobuf_vm_ops; +- vma->vm_flags |= VM_DONTEXPAND | VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_private_data = map; + + dprintk(1, "mmap %p: q=%p %08lx-%08lx (%lx) pgoff %08lx buf %d\n", +diff --git a/linux-tbs-drivers/linux/drivers/media/video/videobuf2-memops.c b/linux-tbs-drivers/linux/drivers/media/video/videobuf2-memops.c +index f542538..f330bf0 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/videobuf2-memops.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/videobuf2-memops.c +@@ -176,7 +176,7 @@ int vb2_mmap_pfn_range(struct vm_area_struct *vma, unsigned long paddr, + return ret; + } + +- vma->vm_flags |= VM_DONTEXPAND | VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_private_data = priv; + vma->vm_ops = vm_ops; + +diff --git a/linux-tbs-drivers/linux/drivers/media/video/vino.c b/linux-tbs-drivers/linux/drivers/media/video/vino.c +index 52a0a37..7a40e12 100755 +--- a/linux-tbs-drivers/linux/drivers/media/video/vino.c ++++ b/linux-tbs-drivers/linux/drivers/media/video/vino.c +@@ -3950,7 +3950,7 @@ found: + + fb->map_count = 1; + +- vma->vm_flags |= VM_DONTEXPAND | VM_RESERVED; ++ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_flags &= ~VM_IO; + vma->vm_private_data = fb; + vma->vm_file = file; diff --git a/packages/linux-drivers/linux-tbs-drivers/unpack b/packages/linux-drivers/linux-tbs-drivers/unpack index 9350f26b11..725aaf616f 100755 --- a/packages/linux-drivers/linux-tbs-drivers/unpack +++ b/packages/linux-drivers/linux-tbs-drivers/unpack @@ -32,3 +32,11 @@ unzip $SOURCES/$1/$ZIP_PKG -d $BUILD/${PKG_NAME}-${PKG_VERSION} >/dev/null 2>&1 tar xjf $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers.tar.bz2 -C $BUILD/${PKG_NAME}-${PKG_VERSION} # fix permissions chmod -R u+rwX $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers/* + +echo "### Applying upstream patches ###" + +for patch in `ls $PKG_DIR/patches.upstream/*.patch`; do + cat $patch | patch -d \ + `echo $BUILD/$PKG_NAME-$PKG_VERSION | cut -f1 -d\ ` -p1 +done +