diff -ru H826D-expert-install.orig/aver/osdep.c H826D-expert-install/aver/osdep.c
--- H826D-expert-install.orig/aver/osdep.c	2009-11-13 18:54:56.000000000 +0800
+++ H826D-expert-install/aver/osdep.c	2011-03-17 22:37:41.670641308 +0800
@@ -432,11 +432,11 @@
 	if( !tmp ) return -ENOMEM;
 	
 	if(st_Mutex == type) {
-		init_MUTEX(tmp);
+		sema_init(tmp, 1);
 		*sem = (pSemaphore) tmp;
 	}
 	else if(st_MutexLocked == type) {
-		init_MUTEX_LOCKED(tmp);
+		sema_init(tmp, 0);
 		*sem = (pSemaphore) tmp;
 	}
 	else {
diff -ru H826D-expert-install.orig/aver/osdep_v4l2.c H826D-expert-install/aver/osdep_v4l2.c
--- H826D-expert-install.orig/aver/osdep_v4l2.c	2009-11-13 18:54:58.000000000 +0800
+++ H826D-expert-install/aver/osdep_v4l2.c	2011-03-17 22:38:14.836858083 +0800
@@ -189,8 +189,6 @@
 		devtype = VFL_TYPE_VBI; break;
 	case vdtRadio:
 		devtype = VFL_TYPE_RADIO; break;
-	case vdtTeletext:
-		devtype = VFL_TYPE_VTX; break;
 	default:
 		return -EINVAL;
 	}
@@ -248,12 +246,6 @@
 		cont->vfd->type = VID_TYPE_TUNER;
 #endif
 		break;
-        case vdtTeletext:
-                devtype = VFL_TYPE_VTX;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) 
-		cont->vfd->type = VID_TYPE_TUNER | VID_TYPE_TELETEXT;
-#endif
-		break;
         default:
                 return -EINVAL;
         }
diff -ru H826D-expert-install.orig/aver/osdep_v4l2.h H826D-expert-install/aver/osdep_v4l2.h
--- H826D-expert-install.orig/aver/osdep_v4l2.h	2009-11-13 18:54:58.000000000 +0800
+++ H826D-expert-install/aver/osdep_v4l2.h	2011-03-17 22:38:34.439939314 +0800
@@ -80,8 +80,7 @@
 typedef enum eVideoDevType {
         vdtVideo=1,
         vdtVbi,
-        vdtRadio,
-        vdtTeletext
+        vdtRadio
 } eVideoDevType;
 
 typedef struct VMAreaStruct
