Эх сурвалжийг харах

V4L/DVB (6090): ivtv-fb: correct transparency bit reporting

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil 18 жил өмнө
parent
commit
459a52fab2

+ 6 - 3
drivers/media/video/ivtv/ivtv-fb.c

@@ -608,9 +608,6 @@ static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv)
 		var->blue.length = 8;
 	}
 	else if (var->bits_per_pixel == 16) {
-		var->transp.offset = 0;
-		var->transp.length = 0;
-
 		/* To find out the true mode, check green length */
 		switch (var->green.length) {
 			case 4:
@@ -620,6 +617,8 @@ static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv)
 				var->green.length = 4;
 				var->blue.offset = 0;
 				var->blue.length = 4;
+				var->transp.offset = 12;
+				var->transp.length = 1;
 				break;
 			case 5:
 				var->red.offset = 10;
@@ -628,6 +627,8 @@ static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv)
 				var->green.length = 5;
 				var->blue.offset = 0;
 				var->blue.length = 5;
+				var->transp.offset = 15;
+				var->transp.length = 1;
 				break;
 			default:
 				var->red.offset = 11;
@@ -636,6 +637,8 @@ static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv)
 				var->green.length = 6;
 				var->blue.offset = 0;
 				var->blue.length = 5;
+				var->transp.offset = 0;
+				var->transp.length = 0;
 				break;
 		}
 	}